Xmpp
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
每次我重新啟動伺服器時,每個房間的歷史都會失去。
房間最近的討論歷史僅保存在 RAM 中,因為它不會被永久儲存。它配置了選項history_size,設置高值沒有意義,因為它只允許新佔用者知道目前討論中的最新評論。它不是為了記錄,不是為了儲存,不是為了歸檔,它只是為了知道目前的對話是什麼。見https://xmpp.org/extensions/xep-0045.html#enter-history
實際上,它仍然儲存在數據庫中,但客戶端無法再檢索它。
從技術上講,您看到的儲存在數據庫中的並不是之前提到的房間“討論歷史”;那是房間討論存檔,您使用mam選項啟用。它將所有房間消息持久地儲存在數據庫中。因此,他們可以在未來的任何時間進行諮詢。見 https://docs.ejabberd.im/admin/configuration/#mod-mam