如何使用 asmack android 从 Openfire 中检索一对一的聊天记录
Posted
技术标签:
【中文标题】如何使用 asmack android 从 Openfire 中检索一对一的聊天记录【英文标题】:How to retrieve one to one chat history from Openfire using asmack android 【发布时间】:2015-01-23 09:32:24 【问题描述】:谁能告诉我使用 asmack 库和 XMPP 协议从 openfire 服务器检索聊天历史记录到 android 客户端应用程序的确切代码?在我的 openfire 服务器中,我启用了合并的监控服务/打开存档服务,并且所有消息都成功存储到数据库中。但我不知道这些消息(聊天历史记录)如何检索到我在 ANDROID 中构建的客户端应用程序。我需要的聊天类型是一对一的用户聊天(不是群聊)。
我在this 的帮助下成功获取了群聊记录,但我想检索一对一的聊天记录
如果有人可以给我写代码,我将不胜感激。
谢谢!
【问题讨论】:
你认为服务器为什么会保留这样的历史记录? @OKas 目前我已经安装了监控插件,它在服务器端存储聊天对话,但我不知道如何检索 恐怕标准的 xmpp 协议不能提供你想要的。您必须实施一些自定义解决方案来访问监控插件数据。 @Okas 所以我们需要创建自定义 API 来检索用户的聊天记录?? 我找到了规范 XEP-0136: Message Archiving xmpp.org/extensions/xep-0136.html 。该规范能够向客户端发送消息历史记录,并且在 openfire 中它已经实现为监控插件。 【参考方案1】:public class XMPPManager implements PacketListener
........
void connect()
//Init connection configuration
......
XMPPTCPConnection xmppTCPConnection = new XMPPTCPConnection(connectionBuilder.build());
xmppTCPConnection .connect();
xmppTCPConnection.addSyncStanzaListener(this, null);
@Override
public void processStanza(Stanza packet)
//Log.d("Log","Body - " + message.getBody());
【讨论】:
以上是关于如何使用 asmack android 从 Openfire 中检索一对一的聊天记录的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android aSmack 中实现 DeliveryReceiptManager
如何使用 asmack 在 android 中创建多用户聊天应用程序
使用新访问令牌在 android 上使用 asmack 进行 Facebook 聊天
无法在 Android 上使用 asmack 登录 Facebook