一旦用户离线iOS,XMPP muc空间就会离开

时间:2016-05-17 08:28:55

标签: ios objective-c iphone xmpp openfire

我正在用Xmmp开火创造空间,第一次工作正常 如果组管理员离线,那么所有成员都离开了房间 来网上不加入房间。如何重新加入房间? !

2 个答案:

答案 0 :(得分:2)

这就是XMPP多用户聊天的工作原理。多用户聊天规范基于在线状态。当您离线时,您不是房间的占用者。

答案 1 :(得分:0)

创建房间后,使用以下代码设置您的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房间与所有成员一起存在