【问题标题】:Chat History and Monitoring Plugin Openfire聊天记录和监控插件 Openfire
【发布时间】:2017-01-09 07:45:41
【问题描述】:

我是 openfire 的新手。我有一个运行nodejs 的聊天应用程序。我有一个安装了 openfire 的单独聊天服务器。

  1. 我想知道聊天组的聊天记录是如何处理的?
  2. 如何从 openfire 服务器逐步加载客户端的聊天记录?我应该为此编写一个自定义例程吗?监控插件是否提供任何相同的功能
  3. 聊天记录的格式是什么?有没有办法以任何给定的格式检索它们?
  4. 是否有任何 API 可用于访问数据库?(我对此表示怀疑)

我也安装了Monitoring Plugin。但是,我找不到任何关于 openfire 或监控插件关于聊天历史记录的文档。 任何帮助将不胜感激。

【问题讨论】:

  • 我也面临同样的问题你找到解决办法了吗?
  • 还没有.. 安装和设置正在工作.. 还有其他问题.. 将更新相同的问题
  • @pravin: 在安装 openfire 的过程中你使用了外部数据库还是嵌入式数据库?
  • @SagarPanda : 嵌入式数据库
  • @pravin 您可以在 openfire 安装目录下的 embedded-db 文件夹中找到文件 openfire.script。 openfire.script 是您的数据库。

标签: openfire


【解决方案1】:

如果你安装了监控插件,可以在其配置段下的readme文件中读取如下内容:

默认启用聊天存档。但是,除非启用聊天记录存档,否则只会存储有关谁在通信以及在什么时间进行通信的信息。要启用聊天记录存档或群聊存档,您需要登录管理控制台并转到:

服务器 --> 存档 --> 存档设置

【讨论】:

  • 感谢您的回复..这有助于解决第 1 点我猜..我已经更新了问题..请您检查并告诉我
  • @priya:我们有一个客户端-服务器架构应用程序,其中 openfire 数据库是从服务器端管理的。因此,当客户端需要聊天历史记录(无论是一对一还是群聊历史记录)时,都会从客户端到服务器调用 api。从而连接到openfires db的服务器端服务从消息存档表中获取数据并将其发送回客户端。
  • @pravin 和 priya:虽然有一种方法可以直接从客户端获取聊天记录,但您需要实现 xep-0136。在这里,您必须发送一个 xml 节请求来获取历史记录。您可以在第 7.Archive Management 部分下的 xmpp.org/extensions/xep-0136.html#manage-list 中查看该节。
【解决方案2】:
  • 要启用群聊存档,您需要登录管理控制台 并转到:Server --> Archiving --> Archiving Settings 和“消息 已为“存档一对一聊天”和/或 “存档群聊”。
  • 然后消息被存储在外部数据库表“ofMessageArchive”中。
  • 可以从数据库中进一步加载历史记录。

这可能对你有帮助!

【讨论】:

  • 如何在我的应用程序中从 openfire 访问表 'ofMessagingArchive'..?
  • @Manasi 感谢您的回复。我已经扩展了问题(也包括 priya 的查询).. 你能检查一下并告诉我吗?
  • openfireDb 将在您的 SQL 中创建,您可以从那里访问表。您必须连接到该数据库并点击查询。请检查是否创建了db。
【解决方案3】:
  1. 请登录您的服务器

  2. 去Plugins,找到插件“Monitoring Service”安装/启用如果你没有启用

  3. 现在进入“服务器”菜单,进入“归档”,然后进入“归档设置”

  4. 选中“存档一对一聊天” 勾选“存档群聊”

  5. 现在点击“更新设置”

然后最重要的是您需要单击“重建索引”(此设置屏幕中的最后一个按钮)。 然后从您的应用发送消息,并检查您的数据库表“ofMessageArchive”

你会有魔法:)

它对我有用,让我们看看它是否对你有用!

【讨论】:

  • 似乎对我有用.. 谢谢.. 请编辑答案并使内容样式正常文本而不是代码样式..
  • 谢谢@pravin
  • 我安装了监控服务插件并设置了上述设置。当我点击“重建索引”时,它显示一个错误。错误日志具有以下内容,“org.jivesoftware.openfire.reporting.stats.RrdSqlBackend - 访问数据库中的信息时出错:java.sql.SQLException:无效的对象名称'ofRRDs'。”没有创建“ofMessageArchive”表。请帮忙。
  • 我为 OpenFire 使用的 SQL 用户添加了 dbOwner 角色。卸载并重新安装监控服务插件。重新启动 OpenFire。仍然 - 没有 ofRRDs 表和没有 ofMessageArchive 表和日志中的错误:java.sql.SQLException: Invalid object name 'ofRRDs'。 ava.io.FileNotFoundException: 无法打开 muc_traffic [不存在]
【解决方案4】:

回答#3: 聊天在消息存档表中以以下格式存档:

conversationID | fromJID | fromJIDResource | toJID | toJIDResource | sentDate | body | 

【讨论】:

  • 你能分享从android应用程序连接到db以openfire和检索数据的代码吗?
猜你喜欢
  • 2016-12-04
  • 1970-01-01
  • 2016-06-26
  • 2013-06-30
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
相关资源
最近更新 更多