其他分享
首页 > 其他分享> > android – 如何发布和解析pubsub xmpp smack库的自定义有效负载

android – 如何发布和解析pubsub xmpp smack库的自定义有效负载

作者:互联网

这个问题在herehere之前被问到,但我从那里得不到答案.
我正在开发我正在使用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名称解析响应

标签:android,xmpp,chat,publish-subscribe,smack
来源: https://codeday.me/bug/20190622/1264055.html