ユーザーが ejabberd MUC に参加すると、サーバーは完全なルーム名簿とチャット履歴をユーザーに送信します。
私の Web ベースのクライアントでは、ページをリロードしてもルームを維持する必要があります。私の問題は、ページがアンロードされるときに最初の情報がすべて失われることです。
ATM 名簿と部屋の履歴を json にシリアル化し、Cookie に保存することで、この問題を回避しています。ただし、これは非常に悪い考えです (tm)。多くのユーザーがいる部屋では、4k の一般的な Cookie 制限をすぐに超える可能性があります。
質問:実際に MUC に再参加することなく、参加時にサーバーがユーザーに送信する情報を再要求するにはどうすればよいですか?
名簿の 1 つのアプローチは、"http://jabber.org/protocol/disco#items" の名前空間でクエリ iq を送信することですが、プレゼンス情報や拡張情報 (実際の非匿名ルームの場合は jid)