Xmpp

eJabberd:伺服器重啟後房間歷史被刪除

  • May 5, 2020

我已經成功部署了 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

每次我重新啟動伺服器時,每個房間的歷史都會失去。

房間最近的討論歷史僅保存在 RAM 中,因為它不會被永久儲存。它配置了選項history_size,設置高值沒有意義,因為它只允許新佔用者知道目前討論中的最新評論。它不是為了記錄,不是為了儲存,不是為了歸檔,它只是為了知道目前的對話是什麼。見https://xmpp.org/extensions/xep-0045.html#enter-history

實際上,它仍然儲存在數據庫中,但客戶端無法再檢索它。

從技術上講,您看到的儲存在數據庫中的並不是之前提到的房間“討論歷史”;那是房間討論存檔,您使用mam選項啟用。它將所有房間消息持久地儲存在數據庫中。因此,他們可以在未來的任何時間進行諮詢。見 https://docs.ejabberd.im/admin/configuration/#mod-mam

引用自:https://serverfault.com/questions/909825