首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使Smackx PubSub工作

使Smackx PubSub工作
EN

Stack Overflow用户
提问于 2011-03-27 09:25:23
回答 1查看 1.2K关注 0票数 2

我有以下代码:

代码语言:javascript
复制
        PubSubManager manager = new PubSubManager(connection, "pubsub.openfire.local");
        LeafNode myNode = (LeafNode) manager.createNode("NewNode", form);

        SimplePayload payload = new SimplePayload("session", "pubsub:NewNode:session", "<sessionId>1234</sessionId>");


        // putting null for id means you let server generate id
        PayloadItem<SimplePayload> item = new PayloadItem<SimplePayload>(null, payload);

        // you could use publish() for asynchronous call
        myNode.send(item);

在试图发送节点值时,我不断地得到以下错误:

>org.jivesoftware.smackx.pubsub.packet.SyncPacketSend.getReply(SyncPacketSend.java:53) at >org.jivesoftware.smackx.pubsub.packet.SyncPacketSend.getReply(SyncPacketSend.java:61) at >org.jivesoftware.smackx.pubsub.PubSubManager.sendPubsubPacket(PubSubManager.java:324) at >org.jivesoftware.smackx.pubsub.PubSubManager.sendPubsubPacket(PubSubManager.java:318) at org.jivesoftware.smackx.pubsub.PubSubManager.createNode(PubSubManager.java:134) at PubSubPublisher.main(PubSubPublisher.java:33)

会喜欢任何关于如何调试,或向前推进的想法。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-06-27 22:56:14

您要创建的节点已经存在。首先调用getNode和/或deleteNode,然后调用createNode。将代码包装在try/catch块中,以处理可能引发的XMPPException

代码语言:javascript
复制
LeafNode myNode = null;
try{
  try{
    LeafNode existingNode = manager.getNode("NewNode");  
    //exists, so delete
    manager.deleteNode("NewNode");
  }catch(XMPPException e){
    //'getNode' threw an exception.
    //so we know that the node did not exist
  }
  myNode = (LeafNode) manager.createNode("NewNode", form);
}catch(XMPPException e){
  System.err.println(e);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5448317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档