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

标签 android xmpp chat publish-subscribe smack

这个问题在 here 之前被问过和 here但我没有从那里得到答案。 我正在开发使用 pubsub 和 xmpp 的应用程序,对于 android 我正在使用 smack 库。我想将自定义有效负载发送到节点并在接收到自定义有效负载时如何解析并将其显示在列表中?现在我可以发送和接收消息了,但这只是 documentaion 中的一个小例子。这是我的例子,

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 并使用标记名称解析响应

关于android - 如何发布和解析 pubsub xmpp smack 库的自定义负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46440662/

相关文章:

c# - CustomWebViewRenderer DownloadManager 与 CopyBackForwardList 的问题

android - Smack API - 从 Openfire 服务器读取聊天记录

python - 查找组中添加的所有用户(reply_channels)(Django channel )

mysql - 用于聊天的复杂 Mysql 查询,按 desc 排序,最后留下 NULL

ios - 当两个用户都在聊天室时,消息仍标记为未读

android - 如何在 Android fragment 中运行或启动应用程序?

android - 在移动设备上查看时 div 周围的边框

android - 找不到SDK和AVD Manager

xmpp - Dart 有 XMPP api 吗?

java - 如何更改所有设备的用户 session 状态(离开、dnd 等)