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

回答

0

你不想通過聊天接收消息,畢竟它實際上不是聊天消息。

pubsub documentation,特別是部分接收發布訂閱消息