如何使用aSmack在Android设备上获取Openfire聊天logging?

我正在开发一个聊天应用程序,用户将与其中一个域专家的组成员聊天。 用户使用我的Android应用程序和领域专家使用火花网聊天。 我做了Openfire安装程序和Spark web安装程序,并开发了Android聊天应用程序和一个Smack库。 我的应用程序用户可以与域专家聊天。 到目前为止,这很好。 现在我想在Android设备上显示任何或特定专家的用户的聊天logging。 在浏览网页后,我可以为我的明火服务器安装监控服务插件,该服务器显示了pipe理员侧的用户聊天logging,如下所示。 在这里输入图像说明

现在我想在我的Android应用程序中显示这个历史logging,我该如何实现这一点。 任何build议,最受欢迎。 我正朝着正确的方向前进吗? 或者有什么简单的方法来做我的工作? 任何有关此聊天logging将存储在Openfire数据库中的信息,以便我可以使用Web服务进行SQL查询和获取数据。

Solutions Collecting From Web of "如何使用aSmack在Android设备上获取Openfire聊天logging?"

您可以使用以下代码获取群聊历史logging:

DiscussionHistory history = new DiscussionHistory(); history.setMaxStanzas(0); multiUserChat.join("username", "password", history, SmackConfiguration.getPacketReplyTimeout()); 

如果您正在使用MUC(XEP-45),则可以在进入MUC时请求讨论历史logging。 见XEP-45 7.2.14讨论历史 。 当使用(a)Smack时,这意味着您必须使用MultiUserChat.join(string昵称,string密码,DiscussionHistory历史logging,长时间超时)来获取历史logging。

我将监控服务插件添加到了openfire,它创build了一些额外的表来存储任何2个账户之间的聊天对话详细信息。 监控服务还为您提供数据库查询静态。 从pipe理面板的数据库静态,我能够得到哪些表,这个聊天细节存储在哪些列。 还需要查询。 使用上述信息,我的后端团队编写了Web服务来获取所需的信息。 这是我实施的方式。