Jak utrzymać pokój Groupchat (MUC) przez cały czas, nawet jeśli został odłączony od serwera XMPP?

Opracowuję moduł wiadomości błyskawicznych (część aplikacji internetowej J2EE) za pomocą openfire / jsjac w protokole XMPP (Jabber).

Zarządzanie / tabele otwartych użytkowników / grup zostały przekierowane do naszych tabel baz danych biznesowych, co oznacza, że ​​nie muszę już utrzymywać użytkowników / grup w otwartym ogniu. wszystkie relacje użytkowników / grup zostały ustawione w biznesowej bazie danych.

Poniżej znajduje się obraz, który rysuję na temat głównej szyby zgodnie z wymaganiami. z powodu mojej niskiej reputacji nie mogę opublikować obrazu, więc publikuję adres URL dla obrazu mojego głównego interfejsu wiadomości błyskawicznej. Przepraszam za niewygodę.główny obraz interfejsu użytkownika wiadomości błyskawicznej

Widzicie, że w lewym okienku nie ma listy użytkowników / grup. Są sesje zapisane zgodnie z historią, co mnie łamie, szczególnie o grupie. Przeczytałem „XEP-0045: Multi-User Chat” z XMPP.org. Wiem o ogólnym przebiegu pracy w czacie grupowym:XEP-0045: Czat wielu użytkowników ”

Stwórz pokój, wytworzyć pokójJid.Skonfiguruj pokój (zarezerwowany pokój)uzyskaj userjid z biznesowej bazy danych i połącz (dodaj) użytkowników z nowym stworzonym pokojem.wyślij wiadomość do pokoju.Usługa wyśle ​​wiadomość do wszystkich członków grupy.

I wiedział o tym, że jest typ pokojutrwały pokój jest wyjaśnione jako „Pokój, który nie zostanie zniszczony, jeśli ostatni pasażer opuści; antonim: Temporary Room.„przez doktora. W tym samym dokumencie są pewne zdania:

Właściciel pokoju MUSI być w stanie zniszczyć pokój, zwłaszcza jeśli pokój jest trwały. Przepływ pracy jest następujący:

Właściciel pokoju żąda zniszczenia pokoju, opcjonalnie podając powód i miejsce alternatywne.Pomieszczenie usuwa wszystkich użytkowników z pokoju (w tym odpowiednie informacje na temat alternatywnej lokalizacji i przyczynę usunięcia) i niszczy pokój, nawet jeśli został określony jako trwały.

Po przeczytaniu powyższego zdania, jestem bardziej zdziwiony, jest kilka problemów, które nadal są mylone.

jakie jest znaczenie „wyjść pasażerów”? jeśli użytkownik wyloguje się z systemu (offline), czy oznacza to „istnieje”. A wszyscy mieszkańcy są w trybie offline, czy to oznacza, że ​​„trwały typ” sprawi, że stworzone przez nas pomieszczenie będzie istnieć? Więc gdzie są zapisywane informacje o pokoju? w otwartym ogniu lub w innym miejscu?Załóżmy, że wszyscy mieszkańcy istnieją (w trybie offline), mimo że ten stworzony pokój nie był zniszczony, a co z wiążącą informacją? mam na myśli założenie, że jeden użytkownik otrzymał członkostwo od właściciela (administratora), jeśli ten użytkownik istnieje lub jest w trybie offline, trwały pokój zachowa swoją rolę członkowską, prawda? innymi słowy, dopóki pomieszczenie nie jest zniszczone, cała konfiguracja i wiążące informacje nie zostaną utracone, prawda?Co powiesz na sytuację, w której serwer openfire ponownie się uruchamia, czy utworzony pokój i jego informacje nadal tam są?jak ponownie znaleźć utworzony pokój, jeśli właściciel ponownie się zaloguje? poprzez zapisywanie identyfikatora pokoju?

poza powyższym pytaniem, pomyślałem, że proces realizacji MUC będzie trwałym pokojem. czy mógłbyś to sprawdzić i zobaczyć, jaki problem istniał w przepływie?

Mój przepływ pracy dla MUC z trwałym pokojem

Właściciel wysyła obiekt obecności na serwer, aby utworzyć pokój i podać identyfikator JID pokoju oraz ustawić identyfikator pokoju.Właściciel wysyła obiekt IQ do serwera, aby skonfigurować utworzony pokój i ustawić typ pokoju jako „trwały”.Właściciel wysyła obiekt IQ, aby przyznać innym użytkownikom rolę członkostwa.Właściciel wysyła wiadomość Obiekt do ROOM jid, a ROOM jid przesyła całą wiadomość do swoich powiązanych członków.Wspólni członkowie tego pomieszczenia obsługują wiadomość (otrzymają) i dostają pokój jid iidentyfikator pokoju (Mam nadzieję, że wszyscy użytkownicy, w tym właściciel, mogą użyć tego identyfikatora pokoju, aby ponownie znaleźć pokój, gdy ponownie się zalogują).

Niezależnie od tego, jaka jest rola, właściciel lub wspólny członek, jak zawrócić i dołączyć do utworzonego pokoju zgodnie z numerem pokoju lub identyfikatorem pokoju, z warunkiem, że typ pokoju jest „trwały”?

questionAnswers(3)

yourAnswerToTheQuestion