2015-03-25 75 views
1

我在Ubuntu Linux上尝试ejabberd(ProcessOne站点上的最新版本),并将其配置为将数据存储在MySQL数据库中。ejabberd是否支持在MySQL数据库中存储muc房间信息?

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

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

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

回答

1

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

通过监控插件,您可以在这里获得:https://www.igniterealtime.org/projects/openfire/plugins.jsp您还可以将muc room消息存储在数据库中。

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
+0

是否可以将所有MUC相关的数据从Mnesia迁移到MySQL? – TranslucentCloud 2015-05-06 10:08:05

+1

我不认为有这样的迁移脚本可用,但可以将转储导出到文本文件并将数据转换为SQL插入。 – 2015-08-02 14:07:09

+0

那么,ejabberd 16.01是否支持将整个muc聊天室记录存储到odbc中? – rastko 2016-02-06 10:23:45

0

要保存睦房在MySQL中,修改ejabberd的配置文件,如下所示:

mod_muc: 
    db_type: sql 
    default_room_options: 
     persistent: true 

查看存储的房间,然后转到MySQL数据库,并使用下面的查询:

>select * from muc_room;