Почему таблица mysql muc_room хранит не постоянную комнату?

Мой сервер ejabberd использует базу данных mysql в качестве внешнего хранилища, и я использую метод /create_room_with_opts API ejabberd для создания своих комнат с опцией: {name: "persistent", value: "false"}. Все работает файлом, а созданные комнаты выглядят фактически как временные - они автоматически закрываются, когда из нее выходят последние участники.

Но у меня есть одна проблема - созданные непостоянные комнаты сохраняются в таблице muc_room, хотя она должна содержать только постоянную комнату (https://docs.ejabberd.im/developer/sql-схема/#table-muc-room)

Например, у меня может быть комната со следующими параметрами в таблице muc_room:

[{allow_change_subj,true},
 {allow_private_messages,true},
 {allow_private_messages_from_visitors,anyone},
 {allow_query_users,true},
 {allow_subscription,false},
 {allow_user_invites,false},
 {allow_visitor_nickchange,true},
 {allow_visitor_status,true},
 {anonymous,true},
 {captcha_protected,false},
 {lang,<<>>},
 {logging,false},
 {mam,true},
 {max_users,200},
 {members_by_default,true},
 {members_only,false},
 {moderated,true},
 {password,<<>>},
 {password_protected,false},
 ======> {persistent,false},
 {presence_broadcast,[moderator,participant,visitor]},
 {public,true},
 {public_list,true},
 {title,<<>>}]

Основная проблема заключается в том, что я получаю всю свою непостоянную комнату, воссозданную при перезапуске моего сервера ejabberd.

Вопросы: 1) Почему постоянные комнаты, созданные с помощью API ejabberd, не сохраняются в таблице muc_room (возможно, какая-то ошибка)? 2) Как избежать повторного создания этой комнаты при перезапуске сервера ejabberd (кроме удаления из БД: вручную или с помощью события mysql)?


person Dmitry Sergeyev    schedule 06.02.2020    source источник


Ответы (1)


Почему постоянные комнаты, созданные с помощью ejabberd API, не сохраняются в таблице muc_room

Это было намеренно добавлено в этот коммит: https://github.com/processone/ejabberd/commit/05c2995c7a4c2afb8481826f9dbe9ed9ec0b282b

для решения этой проблемы: https://github.com/processone/ejabberd/issues/1954

По-видимому, сейчас в этом нет необходимости, поэтому я удалил его в недавнем коммите: ://github.com/processone/ejabberd/commit/5574b21dd67ba898ea1ba55fb4556b6cd53c58cd

person Badlop    schedule 07.02.2020
comment
После того, как вы попробуете это решение, если оно решит вашу проблему, отметьте этот ответ как хороший, чтобы никто не тратил время на его изучение. - person Badlop; 11.02.2020