2

我在 Ubuntu Linux 上尝试使用 ejabberd(ProcessOne 站点上的最新版本)并将其配置为将数据存储在 MySQL 数据库中。

当我添加用户时,我可以在 users 表中看到它们,但任何表中都没有显示 muc 房间。

查看指南不清楚 ejabberd 是否支持这一点。我需要轻松访问数据库中的 muc room 信息,因为我们系统的其他部分将使用这些数据。

ejabberd(我使用的是 v15.03)是否支持将 muc 房间信息(房间 jid、房间主题和房间聊天历史)存储在 MySQL 等外部数据库中?如果没有,那么 Openfire 呢?你会推荐 Openfire 吗?

4

3 回答 3

2

ejabberd 支持 MUC 的 SQL 后端。您需要配置mod_muc以使用正确的db_type. 请参考mod_mucejabberd 文档

请注意:

  • MUC 房间配置仅存储在数据库中,用于持久聊天室。如果您希望它们被存储,请确保您的房间已进行相应配置。
  • 短期历史被保存在内存中。这是用户加入 MUC 房间时自动重新发送的内容。
  • 消息归档依赖于XEP-0313:消息归档管理XMPP 扩展。确保它已启用并适当配置以将内容存储在数据库中。请阅读ejabberd 文档mod_mam
于 2015-04-02T08:38:37.193 回答
2

要在 MySQL 中存储 muc room,修改 ejabberd 的配置文件如下:

mod_muc:
   db_type: sql  
   default_room_options:
       persistent: true

要查看存储的房间,请转到 MySQL 数据库并使用以下查询:

>select * from muc_room;
于 2017-02-15T09:41:36.913 回答
1

我不了解 ejabberd,但 Openfire 提供了您需要的信息。房间信息将存储在 mysql (或其他数据库,如果你想)。

使用您可以在此处获取的监控插件:https : //www.igniterealtime.org/projects/openfire/plugins.jsp 您还可以将 muc 房间消息存储在您的数据库中。

于 2015-03-26T11:12:17.280 回答