您的位置:首页 > 移动开发 > IOS开发

IOS Xmpp 创建固定房间

2014-02-07 14:56 190 查看
XMPPRoom *room;

// 初始化房间
XMPPRoomCoreDataStorage *rosterstorage = [[XMPPRoomCoreDataStorage alloc] init];
if (rosterstorage==nil) {
NSLog(@"nil");
rosterstorage = [[XMPPRoomCoreDataStorage alloc] init];
}
roomJID = [XMPPJID jidWithString:roomName];
room = [[XMPPRoom alloc] initWithRoomStorage:rosterstorage jid:roomJID
dispatchQueue:dispatch_get_main_queue()];

[room activate:[[XMPPManager sharedManager] xmppStream]];

// 在聊天是显示的昵称
[room joinRoomUsingNickname:jid history:nil];

[room fetchConfigurationForm];

[room addDelegate:self delegateQueue:dispatch_get_main_queue()];

#pragma mark 配置房间为永久房间
-(void)sendDefaultRoomConfig
{

NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"jabber:x:data"];

NSXMLElement *field = [NSXMLElement elementWithName:@"field"];
NSXMLElement *value = [NSXMLElement elementWithName:@"value"];

NSXMLElement *fieldowners = [NSXMLElement elementWithName:@"field"];
NSXMLElement *valueowners = [NSXMLElement elementWithName:@"value"];

[field addAttributeWithName:@"var" stringValue:@"muc#roomconfig_persistentroom"];  // 永久属性
[fieldowners addAttributeWithName:@"var" stringValue:@"muc#roomconfig_roomowners"];  // 谁创建的房间

[field addAttributeWithName:@"type" stringValue:@"boolean"];
[fieldowners addAttributeWithName:@"type" stringValue:@"jid-multi"];

[value setStringValue:@"1"];
[valueowners setStringValue:myJid]; //创建者的Jid

[x addChild:field];
[x addChild:fieldowners];
[field addChild:value];
[fieldowners addChild:valueowners];

[room configureRoomUsingOptions:x];

}

// 房间创建成功后在配置永久属性
#pragma mark - 创建讨论组成功回调
- (void)xmppRoomDidCreate:(XMPPRoom *)sender
{
[self sendDefaultRoomConfig];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: