Ejabberd - 在 mysql 中存储离线消息
Ejabberd - store offline messages in mysql
目前,我们应用程序的 ejabberd 服务器实例 运行 未在 mysql 中存储离线消息。示例:用户 'foo' 向其名册中的另一个用户 'bar' 发送消息。在 bar 连接到 ejabberd 服务器之前,消息不会显示在 mysql 数据库的存档 table 中,配置了 ejabberd。
这意味着来自 foo 的消息存储在 mnesia table 中,直到 bar 上线,然后存储在 mysql 的存档中 table。我需要在 bar 连接之前访问这些数据。两种方式:-
- 访问mnesia数据库并查询消息。我正在使用 play framework 并且不确定如何访问 mnesia ,而不从 bar 的帐户登录并访问所有消息
- 将离线消息存储在 mysql
中
哪种方式更好,如何实现?
(这里假设离线数据存储在mnesia中。我没有验证过相同但在线文章指向相同)
更新
mod_offline 仅设置为 odbc。我刚刚发现的是离线消息存储在假脱机 table 中,直到用户连接到 ejabberd,之后它们被推送到存档 table
在您的ejabberd.yml(配置文件)中设置以下行-
mod_offline:
access_max_user_messages: max_user_offline_messages
db_type: odbc
如果 ejabberd 连接到 mysql,它会工作。ejabberd mysql connection configuration is here
目前,我们应用程序的 ejabberd 服务器实例 运行 未在 mysql 中存储离线消息。示例:用户 'foo' 向其名册中的另一个用户 'bar' 发送消息。在 bar 连接到 ejabberd 服务器之前,消息不会显示在 mysql 数据库的存档 table 中,配置了 ejabberd。
这意味着来自 foo 的消息存储在 mnesia table 中,直到 bar 上线,然后存储在 mysql 的存档中 table。我需要在 bar 连接之前访问这些数据。两种方式:-
- 访问mnesia数据库并查询消息。我正在使用 play framework 并且不确定如何访问 mnesia ,而不从 bar 的帐户登录并访问所有消息
- 将离线消息存储在 mysql 中
哪种方式更好,如何实现?
(这里假设离线数据存储在mnesia中。我没有验证过相同但在线文章指向相同)
更新
mod_offline 仅设置为 odbc。我刚刚发现的是离线消息存储在假脱机 table 中,直到用户连接到 ejabberd,之后它们被推送到存档 table
在您的ejabberd.yml(配置文件)中设置以下行-
mod_offline:
access_max_user_messages: max_user_offline_messages
db_type: odbc
如果 ejabberd 连接到 mysql,它会工作。ejabberd mysql connection configuration is here