2017-09-27 111 views
2

這個問題之前詢問herehere但我沒有從那裏得到答案。 我正在開發應用程序,其中我使用pubsub和xmpp,對於android我正在使用smack庫。我想發送自定義有效載荷到節點和接收自定義有效載荷如何解析並顯示在列表中?現在我能夠發送和接收消息,但這只是文檔的一個小例子。這裏是我的榜樣,如何發佈和解析pubsub的自定義有效載荷xmpp smack庫

String msg = "room pubsub test"; 

SimplePayload payload = new SimplePayload("message", "pubsub:test:message", "<message xmlns='pubsub:test:message'><body>" + msg + "</body></message>"); 

PayloadItem<SimplePayload> item = new PayloadItem<>(null, payload); 

node.publish(item); 

,當我收到項目

node.addItemEventListener(new ItemEventListener() { 
      @Override 
      public void handlePublishedItems(ItemPublishEvent items) { 
        System.out.println("======================handlePublishedItems=============================="); 
        System.out.println(items.getItems()); 
      } 
} 

和我得到的輸出是

[org.jivesoftware.smackx.pubsub.PayloadItem | 
Content [<item id='5E277A9C33A58'> 
<message xmlns='pubsub:test:message'> 
<body xmlns='pubsub:test:message'>room pubsub test</body>< 
/message> 
</item>]] 

我想發送自定義負載的時間等,在這消息已發送,誰發送了此消息等。 那麼,我如何發送自定義有效載荷?以及如何解析並顯示給用戶?使用下面的代碼時間和發件人

回答

4

發送自定義負載:

SimplePayload payload = new SimplePayload("message", "pubsub:test:message", "<message xmlns='pubsub:test:message'><body>" + textMessage + "</body><from>"+Sender+"</from><time>"+time+"</time></message>"); 

爲了解析您可以使用XmlPullParser和使用標籤名稱解析響應

+0

你能不能給我舉例XmlPullParser和使用標籤名稱解析響應? – gaurang

+0

@gaurang你可以參考這個鏈接進行分析[鏈接] https://github.com/42cc/p2psafety/blob/master/p2psafety-android/p2psafety/src/ua/p2psafety/services/XmppService.java –

+0

好吧,我會檢查並回復你。 – gaurang