Я реализовал групповой чат, используя функцию mucSub, предоставленную ejabberd.
На данный момент сообщения, которые были отправлены в комнату muc, хранятся в базе данных mnesia, всякий раз, когда я перезапускаю историю сообщений сервера, теряется. Мне нужно, чтобы они хранились в mysql. Я хочу иметь возможность получать историю комнаты muc в любой момент, как и в приложении.
Это моя конфигурация mod_mam и mod_muc:
mod_mam:
default: always
db_type: sql
mod_muc:
db_type: sql
access:
- allow
access_admin:
- allow: admin
access_create: muc_create
access_persistent: muc_create
default_room_options:
mam: true
persistent: true
Кто-нибудь, пожалуйста, помогите мне выбраться из этого ... Спасибо
всякий раз, когда я перезапускаю сервер, история сообщений теряется
Да, история последних сообщений комнаты хранится в ОЗУ и теряется при остановке сервера. Это функция, предоставляемая mod_muc, как описано в XEP-0045. Как вы заметили, эта недавняя история теряется, поэтому в вашем случае лучше сосредоточиться на mod_mam, который реализует XEP-0313, а сообщения постоянно хранятся в базе данных.
На данный момент сообщения, отправленные в комнату слизистой, хранятся в базе данных mnesia.
С этой конфигурацией вы видите новые сообщения, отправленные в комнату, хранящиеся в таблице «archive_msg» Mnesia?
Я попробовал вашу конфигурацию с ejabberd 18.12, и сообщения правильно сохраняются в таблице MySQL «archive», а не в таблице «archive_msg» Mnesia.