如何用asmack发布和解析PubSubManager
问题描述:
我正在使用asmack lib和openfire作为xmpp服务器,在Android平台上开发IM应用程序。由于用户在与服务器断开连接时无法保持聊天室,因此我决定实施PubSubManager概念。我经历了很多链接,但无法得到任何有关Payload发布和从有效载荷中检索消息的好解释。这里是我的创建和订阅自己该节点和发布的有效载荷代码....如何用asmack发布和解析PubSubManager
ConfigureForm form = new ConfigureForm(FormType.submit);
form.setAccessModel(AccessModel.open);
form.setDeliverPayloads(true);
form.setNotifyRetract(true);
form.setNotifyDelete(true);
form.setPublishModel(PublishModel.open);
leafNode = pubSubManager.createNode("testnode");
leafNode.sendConfigurationForm(form);
leafNode.subscribe(MY_JID);
SimplePayload payload = new SimplePayload(
"elementname",
"pubsub:testnode:elementname",
"<elementname>my content</elementname>");
PayloadItem<SimplePayload> item = new PayloadItem<SimplePayload>(
null, payload);
leafNode.publish(item);
我已经没有任何问题,而发布此item.When发布此,我的聊天监听器被触发(因为我订阅我自己在该节点中)与一个消息对象,从中我无法获得消息正文(null)。因此,无论我的发布过程是否正确,如果可以,我如何在接收时取回它。