XMPP 在离线时获取房间配置更改消息

XMPP Getting Room Configuration Change Messages While Offline

我们正在使用 IOS 的 XMPPFramework 来为我们的移动应用程序实现聊天功能。 我们已经更改了房间名称功能,当管理员更改房间名称时,服务器会向所有组接收者发送消息,当所有接收者在线时没有问题但是当用户未加入组时(当时未连接) ) 即使他重新上线也收不到消息。

我们正在使用历史参数来检索组中的旧消息,但我们无法接收这些配置更改(以及服务器添加或禁止的用户信息)消息。 你知道我们如何解决这个问题吗?

NSXMLElement *history = [NSXMLElement elementWithName:@"history"];
[history addAttributeWithName:@"seconds" stringValue:[NSString stringWithFormat:@"%.0f",disconnetSecond]];
[xmppRoom joinRoomUsingNickname:cusername history:history];

谢谢

如果您使用 Room Subject as room name then it's automatically supported in XMPP. Also changing room subject 受支持,当用户加入房间时它会发送给用户。所以最终无论何时你加入房间,你都会得到更新的主题,你可以在 UI 上显示它,甚至你可以向用户显示名称已更改。

您只需按照 XEP-0045: Multi-User Chat

中定义的说明进行操作

借助 ejabberd,您可以使用新的 MUC/Sub 方法并订阅节点 "urn:xmpp:mucsub:nodes:config" 上的配置更改。 此处描述了规范:https://docs.ejabberd.im/developer/xmpp-clients-bots/proposed-extensions/muc-sub/ 您必须在 XMPPFramework 中添加支持,因为它尚不受支持,但这应该可以满足您的需要。您可以将配置更改放入离线商店。