0
我正在使用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)。因此,無論我的發佈過程是否正確,如果可以,我如何在接收時取回它。