跳到主要内容

在PubSub+ JCSMP API中添加数据负载

您可以向 PubSub+ JCSMP API 消息添加以下类型的数据负载:

  • XML 内容:可以将 XML 数据添加到消息的 XML 内容部分。
  • 二进制内容:可以将二进制数据作为二进制附件添加到消息中。消息只能包含一个附件。 当此附件通过事件代理发送时,它不会被处理、转换,也不会参与订阅匹配或过滤操作。这为发送不需要在到达接收应用程序之前由平台处理的数据提供了一种高效手段。

结构化数据也可以作为二进制附件中的负载添加(请参阅在 PubSub+ JCSMP API 中使用结构化数据)。

  • 用户属性映射:可以将结构化数据添加到用户定义的消息头字段中。
  • 用户数据:可以将最多 36 字节的应用程序特定二进制数据(称为用户数据)添加到用户数据消息头字段中。

发布的直接消息允许的最大总大小为 64 MiB(67,108,864 字节)。这是事件代理施加的限制,它考虑了消息头字段数据、XML 元数据、XML 负载以及任何附件。

要添加的数据类型设置方式
XML 数据- setXMLContent(...)
XMLContentMessage 设置 XML 数据负载内容。
  • writeBytes(...)
    为非结构化 XML 消息设置 XML 数据负载内容。 | | 二进制数据 | writeAttachment(...)
    您也可以使用结构化的 BytesMessage 消息类来创建包含二进制附件中数据负载的消息。 | | 用户数据 | setUserData(...)
    MessageProducer 不会验证用户数据的值。 |

如何向消息添加数据负载

相关示例:

  • 有关如何向消息添加二进制数据负载的示例,请参阅 DirectPubSub

  • 有关如何向消息添加 SDT 负载的示例,请参阅 SDTPubSubMsgIndepSDTPubSubMsgDep 示例。

    • SDTPubSubMsgIndep 示例中,使用应用程序内存(JCSMP API 允许)创建 SDT 容器。

有关使用应用程序内存或 API 控制的内存创建 SDT 容器的更多信息,请参阅在 PubSub+ JCSMP API 中使用结构化数据。