Ejabberd - 在mysql

时间:2016-05-12 04:22:07

标签: mysql ejabberd mnesia

目前,为我们的应用程序运行的ejabberd服务器实例未在mysql中存储脱机消息。示例:user' foo'将消息发送给其名单中的另一个用户' bar。消息未显示在mysql数据库的存档表中,配置了ejabberd,直到bar连接到ejabberd服务器。

这意味着来自foo的消息存储在mnesia表中,直到bar联机,然后在mysql的归档表中。我需要在bar连接之前访问此数据。两种方式: -

  • 访问mnesia数据库并查询消息。我正在使用播放框架,我不知道如何访问mnesia,无需从条形码帐户登录并访问所有消息
  • 在mysql中存储离线消息

哪种方式更好,如何实现相同?

(这里假设离线数据存储在mnesia中。我没有验证相同但在线文章指向相同的内容)

更新

mod_offline仅设为odbc。我刚刚发现的是离线消息存储在假脱机表中,直到用户连接到ejabberd,之后它们被推送到归档表

1 个答案:

答案 0 :(得分:0)

在你的ejabberd.yml(配置文件)中设置以下行 -

 mod_offline: 
    access_max_user_messages: max_user_offline_messages
    db_type: odbc

如果ejabberd连接到mysql,它就可以工作。ejabberd mysql connection configuration is here