ejabberd是否支持在MySQL数据库中存储muc房间信息?

时间:2015-03-25 08:42:07

标签: mysql openfire ejabberd multiuserchat

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

当我添加用户时,我可以在users表中看到它们,但是没有关于muc rooms的内容出现在任何表中。

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

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

3 个答案:

答案 0 :(得分:2)

ejabberd支持MUC的SQL后端。您需要配置mod_muc才能使用正确的db_type。请参阅mod_muc ejabberd documentation

请注意:

  • MUC房间配置仅存储在持久聊天室的数据库中。如果您希望将它们存放,请确保您的房间配置相应。
  • 短期历史记录保存在记忆中。这是用户加入MUC房间时自动重新发送的内容。
  • 邮件存档依赖于XEP-0313: Message Archive Management XMPP扩展。确保它已启用并已正确配置以在数据库中存储内容。请阅读ejabberd documentation on mod_mam

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

要在MySQL中存储muc房间,请按如下方式修改ejabberd的配置文件:

mod_muc:
   db_type: sql  
   default_room_options:
       persistent: true

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

>select * from muc_room;