【问题标题】:How to retrieve one to one chat history from Openfire using asmack android如何使用 asmack android 从 Openfire 中检索一对一的聊天记录
【发布时间】: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 中它已经实现为监控插件。

标签: android xmpp openfire asmack


【解决方案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());
 }
}

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 2019-05-05
    • 2017-01-15
    • 1970-01-01
    • 2012-09-01
    • 2014-03-06
    • 2013-02-16
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多