2017-09-27 9 views
2

이 질문은 herehere 전에 묻지 만 거기에서 답변을 얻지 못합니다. 저는 pubsub와 xmpp를 사용하는 응용 프로그램을 개발하고 있습니다. 안드로이드에 대해서는 매매 라이브러리를 사용하고 있습니다. 노드에 사용자 정의 페이로드를 보내고 사용자 정의 페이로드를 수신하여 구문 분석하고 목록에 표시하는 방법을 원하십니까? 이제는 메시지를 보내고받을 수 있지만 문서화의 작은 예일뿐입니다. 여기 내 예를 들어,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

보내기 정의 페이로드 : 당신이 XmlPullParser를 사용하여 태그 이름을 사용하여 응답을 구문 분석 할 수있는 분석을 위해

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

+0

당신은 XmlPullParser 나에게 예를 제공하고 태그 이름을 사용하여 응답을 구문 분석 할 수 ? – gaurang

+0

@gaurang 당신은 [링크] https://github.com/42cc/p2psafety/blob/master/p2psafety-android/p2psafety/src/ua/p2psafety/services/XmppService.java 구문 분석을 위해이 링크를 참조 할 수 있습니다 –

+0

괜찮습니다. 확인하고 다시 연락하십시오. – gaurang