10

我正在开发一个聊天应用程序,用户将在其中与一位领域专家的组成员聊天。用户使用我的 android 应用程序,领域专家使用 spark web 进行聊天。我进行了 Openfire 设置和 Spark 网络设置,并使用 aSmack 库开发了 Android 聊天应用程序。我的应用用户可以与领域专家聊天。到目前为止还好。现在我想在 Android 设备上显示用户与任何或特定专家的聊天记录。上网后,我可以为我的开放式服务器安装监控服务插件,该插件在管理员端显示用户的聊天记录,如下所示。在此处输入图像描述

现在我想在我的 Android 应用程序中展示这段历史,我怎样才能做到这一点。任何建议,非常欢迎。我是否朝着正确的方向前进?或者有什么简单的方法来完成我的工作?非常感谢有关此聊天历史记录将存储在 Open fire 数据库中何处的任何信息,以便我可以进行 SQL 查询并使用 Web 服务获取数据。

4

3 回答 3

4

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

DiscussionHistory history = new DiscussionHistory();
history.setMaxStanzas(0);


multiUserChat.join("username", "password", history, SmackConfiguration.getPacketReplyTimeout());
于 2015-05-12T07:05:51.563 回答
2

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

于 2013-08-25T06:12:21.623 回答
2

如果您使用的是 MUC (XEP-45),那么您可以在输入 MUC 时请求讨论历史记录。请参阅XEP-45 7.2.14 讨论历史。使用 (a)Smack 时,这意味着您必须使用MultiUserChat.join(Stringnickname, String password, DiscussionHistory history, long timeout)来获取 History。

于 2013-01-27T12:17:33.250 回答