当用户加入 ejabberd MUC 时,服务器将向用户发送完整的房间名册和聊天记录。
在我的基于 Web 的客户端中,我需要在页面重新加载时保留房间。我的问题是我在卸载页面时丢失了所有初始信息。
ATM 我正在通过将名册和房间历史序列化为 json 并将其存储在 cookie 中来解决这个问题。然而,这是一个非常糟糕的主意(tm),因为我可以很快超过有很多用户的房间的 4k 一般 cookie 限制。
所以问题是:如何重新请求服务器在加入时发送给用户的信息,而不实际重新加入 MUC?
名册的一种方法是发送一个命名空间为“http://jabber.org/protocol/disco#items”的查询 iq,但这是不完整的,因为它不提供存在信息或任何扩展信息(例如真实非匿名房间的jids)