这个问题在here和here之前被问到,但我从那里得不到答案.
我正在开发我正在使用pubsub和xmpp的应用程序,对于android我正在使用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>]]
我想发送自定义有效负载,如发送消息的时间,发送此消息的人等.
那么,我该如何发送自定义有效载荷?以及如何解析它并将其显示给用户?
解决方法:
使用以下代码发送时间和发件人的自定义负载:
SimplePayload payload = new SimplePayload("message", "pubsub:test:message", "<message xmlns='pubsub:test:message'><body>" + textMessage + "</body><from>"+Sender+"</from><time>"+time+"</time></message>");
对于解析,您可以使用XmlPullParser并使用Tag名称解析响应