【发布时间】:2016-09-13 05:53:28
【问题描述】:
我正在用 Xmmp 开火创建房间,第一次工作正常 如果组管理员下线,那么所有成员都离开了房间,当 来网上不加入房间。如何重新加入房间? !
【问题讨论】:
标签: ios objective-c iphone xmpp openfire
我正在用 Xmmp 开火创建房间,第一次工作正常 如果组管理员下线,那么所有成员都离开了房间,当 来网上不加入房间。如何重新加入房间? !
【问题讨论】:
标签: ios objective-c iphone xmpp openfire
这就是 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 Room 与所有成员都存在
【讨论】: