Как сохранить групповую комнату (MUC) существующей постоянно, даже если она отключена от сервера XMPP?

Я разрабатываю модуль мгновенных сообщений (часть веб-приложения J2EE) с использованием openfire / jsjac в рамках протокола XMPP (Jabber).

Управление / таблицы пользователей / групп openfire было перенаправлено в таблицы нашей бизнес-базы данных, что означает, что мне больше не нужно поддерживать пользователей / группы в openfire. все отношения пользователей / групп были установлены в бизнес-базе данных.

Ниже приведено изображение, которое я рисую на главной панели в соответствии с требованиями. из-за моей низкой репутации я не могу опубликовать изображение, поэтому я публикую URL для изображения основного интерфейса моего мгновенного сообщения. Извините за неудобства.основной интерфейс мгновенного сообщения Image

Ребята, вы можете видеть, что на левой панели нет списка пользователей / групп. Есть сессии, сохраненные в соответствии с историей, которая меня озадачивает, особенно в отношении группы. Я прочитал «XEP-0045: Многопользовательский чат» с XMPP.org. Я знаю об общем рабочем процессе о групповом чате:XEP-0045: многопользовательский чат "

Создайте комнату, произведите комнату Джид.Сконфигурируйте комнату. (Зарезервированная комната)получить usersjid из бизнес-базы данных и привязать (добавить) пользователей к новой созданной комнате.отправить сообщение в комнату.Сервис отправит сообщение всем участникам группы.

И знал о том, что есть номер типапостоянная комната объясняется какКомната, которая не разрушается, если последний обитатель выходит; антоним: временная комната."по документу. И в том же документе есть несколько предложений:

Владелец комнаты ДОЛЖЕН иметь возможность уничтожить комнату, особенно если комната постоянная. Рабочий процесс выглядит следующим образом:

Владелец комнаты просит, чтобы комната была уничтожена, при необходимости указав причину и альтернативное место.Комната удаляет всех пользователей из комнаты (включая соответствующую информацию об альтернативном местоположении и причине удаления) и уничтожает комнату, даже если она была определена как постоянная.

Прочитав вышеприведенное предложение, я более озадачен, есть несколько проблем, которые я все еще смущен.

что означает "выходы пассажира"? если посетитель выходит из системы (в автономном режиме), означает ли это «существует»? Так, где информация о комнате сохранена? в openfire или где-то еще?Предположим, что все обитатели существуют (в автономном режиме), хотя эта созданная комната не была уничтожена, как насчет информации о привязке? Я имею в виду, предположим, что один пользователь получил членство от владельца (администратора), если этот пользователь существует или находится в автономном режиме, постоянная комната сохранит свою роль участника, верно? другими словами, пока комната не уничтожена, вся информация о конфигурации и привязке не будет потеряна, верно?Как насчет ситуации, когда сервер openfire сталкивается с перезапуском, находится ли созданная комната и ее информация все еще там?как заново найти созданную комнату, если владелец повторно залогинится? через сохранение номера комнаты?

Помимо вышеупомянутого вопроса, я думал, что рабочий процесс для реализации MUC с постоянной комнатой. Не могли бы вы проверить это и посмотреть, какая проблема существует в потоке?

Мой рабочий процесс для MUC с постоянной комнатой

Владелец отправляет объект присутствия на сервер в созданную комнату, дает JID комнаты и устанавливает идентификатор комнаты.Владелец отправляет объект IQ на сервер, чтобы сконфигурировать созданную комнату и установить тип комнаты как «постоянный».Владелец отправляет объект IQ, чтобы предоставить другим пользователям роль членства. (Информация привязки)Владелец отправляет сообщение Object в ROOM jid, а ROOM jid пересылает все сообщение своим привязанным членам.Обычные члены этой комнаты обрабатывают сообщение (получают) и получают номер комнатыномер комнаты (Я надеюсь, что все пользователи, включая владельца, могут использовать этот идентификатор комнаты, чтобы повторно найти комнату, когда они переместятся ..)

Поэтому независимо от роли, владельца или обычного члена, как переопределить и воссоединиться с созданной комнатой в соответствии с jid или id комнаты с предварительным условием, что тип комнаты «постоянный» ??

Ответы на вопрос(3)

Ваш ответ на вопрос