eJabberd:服务器重启后房间历史记录将被删除

eJabberd:服务器重启后房间历史记录将被删除

我已经成功部署了 ejabberd 服务器并将其与移动应用程序集成。

一切都运行良好,但是,每次我重新启动服务器时,每个房间的历史记录都会丢失。实际上,它仍然存储在数据库中,但客户端无法再检索它。

最初我以为这是一个客户端问题,但在使用 Xabber 和 Pidgin 等知名客户端时我也遇到了同样的问题。

我多次检查了配置教程https://docs.ejabberd.im/admin/configuration/#mod-muc但我什么也没找到。

你们遇到过类似的事情吗?这种意外行为背后的原因是什么?

以下是 moc_muc 在服务器上的配置方式:

mod_muc:
    host: "conf.example.com"
    history_size: 1000
    max_users: 1000000
    max_user_conferences: 1000
    default_room_options:
      mam: true
      max_users: 1000000
      members_by_default: true
      members_only: false
      password_protected: false
      persistent: true
      public: true
      moderated: false
      anonymous: false

答案1

每次我重新启动服务器时,每个房间的历史记录都会丢失。

房间最近的讨论历史仅保存在 RAM 中,因为它不打算永久存储。它配置了选项历史大小,设置一个高值是没有意义的,因为它只允许新用户知道当前讨论中的最新评论。它不用于记录,不用于存储,不用于归档,它只是为了知道当前的对话是什么。参见https://xmpp.org/extensions/xep-0045.html#enter-history

实际上,它仍然存储在数据库中,但客户端无法再检索它。

从技术上讲,您看到的存储在数据库中的内容并不是之前提到的房间“讨论历史记录”;那是您通过以下方式启用的房间讨论存档:妈妈选项。该选项将所有房间消息持久存储在数据库中。因此,将来可以随时查阅。请参阅 https://docs.ejabberd.im/admin/configuration/#mod-mam

相关内容