用户离线后 XMPP muc 房间剩余 iOS
XMPP muc room left once user offline iOS
我正在用 Xmmp open fire 创建房间,第一次它工作正常
如果组管理员去离线然后所有成员离开房间,当
来网上不入室。如何重新加入房间? !
这就是 XMPP 多用户聊天的工作原理。多用户聊天规范是基于在线状态的。当您离线时,您不是房间的主人。
创建房间后,使用以下代码设置您的 XMPP 房间持久化...
-(void)xmppRoomDidJoin:(XMPPRoom *)sender {
NSLog("I did join.");
[sender fetchConfigurationForm];
}
-(void)xmppRoom:(XMPPRoom *)sender didFetchConfigurationForm:(NSXMLElement *)configForm {
NSXMLElement *newConfig = [configForm copy];
NSArray *fields = [newConfig elementsForName:@"field"];
for (NSXMLElement *field in fields) {
NSString *var = [field attributeStringValueForName:@"var"];
// Make Room Persistent
if ([var isEqualToString:@"muc#roomconfig_persistentroom"]) {
[field removeChildAtIndex:0];
[field addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]];
}
}
[sender configureRoomUsingOptions:newConfig];
}
如果房间所有者离线,那么所有成员都存在 XMPP 房间的时间
我正在用 Xmmp open fire 创建房间,第一次它工作正常 如果组管理员去离线然后所有成员离开房间,当 来网上不入室。如何重新加入房间? !
这就是 XMPP 多用户聊天的工作原理。多用户聊天规范是基于在线状态的。当您离线时,您不是房间的主人。
创建房间后,使用以下代码设置您的 XMPP 房间持久化...
-(void)xmppRoomDidJoin:(XMPPRoom *)sender {
NSLog("I did join.");
[sender fetchConfigurationForm];
}
-(void)xmppRoom:(XMPPRoom *)sender didFetchConfigurationForm:(NSXMLElement *)configForm {
NSXMLElement *newConfig = [configForm copy];
NSArray *fields = [newConfig elementsForName:@"field"];
for (NSXMLElement *field in fields) {
NSString *var = [field attributeStringValueForName:@"var"];
// Make Room Persistent
if ([var isEqualToString:@"muc#roomconfig_persistentroom"]) {
[field removeChildAtIndex:0];
[field addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]];
}
}
[sender configureRoomUsingOptions:newConfig];
}
如果房间所有者离线,那么所有成员都存在 XMPP 房间的时间