Xmpp 使用Smack将具有有效负载的项目发布到Pubsub节点

Xmpp 使用Smack将具有有效负载的项目发布到Pubsub节点,xmpp,publish-subscribe,openfire,smack,whack,Xmpp,Publish Subscribe,Openfire,Smack,Whack,我正试图使用Smack将带有有效负载的项目发布到pubsub节点,但到目前为止我还没有成功。我已经创建了节点,并将其配置设置为交付有效负载setDeliverPayloads=true。我正在使用send方法发送带有有效负载的项目 node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload("my book", "books:pubsub:simple", "

我正试图使用Smack将带有有效负载的项目发布到pubsub节点,但到目前为止我还没有成功。我已经创建了节点,并将其配置设置为交付有效负载setDeliverPayloads=true。我正在使用send方法发送带有有效负载的项目

 node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload("my book", "books:pubsub:simple", "")));
然而,发布该项目时没有有效载荷。构造的IQ也没有有效载荷。正如我从smack的调试面板中看到的

这是由smack构造并发送到pubsub服务的内容,显然没有有效负载

<iq id="1ha20-11" to="pubsub.127.0.0.1" type="set">
   <pubsub xmlns="http://jabber.org/protocol/pubsub">
   <publish node="autoIncrement">
       <item id="autoIncrement*1333380921970"/>
   </publish>
  </pubsub>
</iq>

如果能为解决这个问题提供任何帮助,我将不胜感激。当然,我仍然可以使用本机IQ消息,但我将尽量避免使用本机IQ消息,以便在smack API中使用PubSubManager。

以上代码没有任何问题。唯一的问题是,上面提供的示例确实有一个空的负载SimplePayloadmy book,books:pubsub:simple,因此smack甚至根本不显示该项的负载

指定有效负载后,它将包含在发布的项目中

下面是用于发布具有有效负载的项的代码

  node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload(load, "stage:pubsub:simple", "<book xmlns='pubsub:test:book'><title>Lord of the Rings</title></book>")));
这是发送到Jabbered服务器的预期IQ

<iq id="OIqU4-12" to="pubsub.stage.127.0.0.1" type="set">
      <pubsub xmlns="http://jabber.org/protocol/pubsub">
        <publish node="autoIncrement">
          <item id="autoIncrement*1333438199718">
            <book xmlns="pubsub:test:book">
              <title>Lord of the Rings</title>
            </book>
          </item>
    </publish>
  </pubsub>
</iq>

上面的代码没有任何问题。唯一的问题是,上面提供的示例确实有一个空的负载SimplePayloadmy book,books:pubsub:simple,因此smack甚至根本不显示该项的负载

指定有效负载后,它将包含在发布的项目中

下面是用于发布具有有效负载的项的代码

  node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload(load, "stage:pubsub:simple", "<book xmlns='pubsub:test:book'><title>Lord of the Rings</title></book>")));
这是发送到Jabbered服务器的预期IQ

<iq id="OIqU4-12" to="pubsub.stage.127.0.0.1" type="set">
      <pubsub xmlns="http://jabber.org/protocol/pubsub">
        <publish node="autoIncrement">
          <item id="autoIncrement*1333438199718">
            <book xmlns="pubsub:test:book">
              <title>Lord of the Rings</title>
            </book>
          </item>
    </publish>
  </pubsub>
</iq>