Fut*_*020 1 xmpp openfire publish-subscribe smack whack
我正在尝试使用Smack将带有负载的项目发布到pubsub节点,但到目前为止我还没有管理.我创建了节点并设置其配置以提供有效负载(setDeliverPayloads = true).我使用send方法发送带有效负载的项目.
node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload("my book", "books:pubsub:simple", "")));
Run Code Online (Sandbox Code Playgroud)
然而,该项目没有有效载荷.构造的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>
Run Code Online (Sandbox Code Playgroud)
我很感激任何帮助来解决这个问题.当然我仍然可以使用本机IQ消息,但我会尽量避免使用smack API中的PubSubManager.
上面的代码没有任何问题.唯一的问题是上面提供的示例确实有一个空的有效负载(SimplePayload("我的书","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>")));
Run Code Online (Sandbox Code Playgroud)
这是发送到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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2747 次 |
| 最近记录: |