如何使用asmack Android从Openfire检索一对一聊天记录

8
请问有没有人能够给我展示使用asmack库和XMPP协议从openfire服务器检索聊天历史记录到Android客户端应用程序的确切代码?在我的openfire服务器中,我启用了合并监控服务/开放式存档服务,并且所有消息都成功存储到数据库中。但是我不知道如何将那些消息(聊天记录)检索到我的Android客户端应用程序中。我需要的聊天类型是一对一用户聊天(不是群聊)。我已经通过这个方法成功获取了群聊历史记录,但我想要检索一对一聊天历史记录。如果有人能为我编写代码,我将非常感激。谢谢!

你认为服务器为什么要保留这样的历史记录? - Okas
@OKas 目前我已经安装了一个监控插件,它可以将聊天记录存储在服务器端,但我不知道如何检索。 - Mahi
@Okas 所以我们需要创建自定义 API 来检索用户的聊天记录吗? - Mahi
我发现了规范XEP-0136:消息归档http://xmpp.org/extensions/xep-0136.html。该规范能够将消息历史记录发送到客户端,在openfire中已经实现为监控插件。 - Mahi
@Montu 你不觉得这有点偏心吗 ;) ? 它为 iPhone 提供历史记录,但没有为 Android 提供。:( - Yog Guru
显示剩余4条评论
1个回答

0
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());
 }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接