@property(nonatomic,strong)XMPPRoomCoreDataStorage *xmppRoomStorage;
@property(nonatomic,strong)WCXMPPTool *manager;
@property(nonatomic,strong)XMPPRoom *room;
//初始化房间
XMPPRoomCoreDataStorage *xmppRoomStorage = [[XMPPRoomCoreDataStorage alloc] init];
if (xmppRoomStorage==nil) {
xmppRoomStorage = [[XMPPRoomCoreDataStorage alloc] init];
}
NSString *jidRoom = [NSString stringWithFormat:@"%@@conference.bogon", _RoomNameTV.text];
XMPPJID *jid = [XMPPJID jidWithString:jidRoom];
self.room = [[XMPPRoom alloc]initWithRoomStorage:xmppRoomStorage jid:jid dispatchQueue:dispatch_get_main_queue()];
[_room activate:self.manager.xmppStream];
[_room addDelegate:self delegateQueue:dispatch_get_main_queue()];
//假如密码为空
if ([_passwordTV.text isEqualToString:@""]) {
[_room joinRoomUsingNickname:_signatureTV.text history:nil];
[_room fetchConfigurationForm];
[_room configureRoomUsingOptions:nil];
[_room addDelegate:self delegateQueue:dispatch_get_main_queue()];
}else{//假如有密码
[_room joinRoomUsingNickname:_signatureTV.text history:nil password:_passwordTV.text];
[_room fetchConfigurationForm];
[_room configureRoomUsingOptions:nil];
[_room addDelegate:self delegateQueue:dispatch_get_main_queue()];
}
//创建房间的配置信息
-(void)sendDefaultRoomConfig
{
NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"jabber:x:data"];
NSXMLElement *field = [NSXMLElement elementWithName:@"field"];
[field addAttributeWithName:@"label" stringValue:@"Make Room Persistent?"];
[field addAttributeWithName:@"type" stringValue:@"boolean"];
[field addAttributeWithName:@"var" stringValue:@"muc#roomconfig_persistentroom"];
NSXMLElement *value = [NSXMLElement elementWithName:@"value"];
[value setStringValue:@"1"];
[field addChild:value];
[x addChild:field];
NSXMLElement *fieldMaxInviteMember = [NSXMLElement elementWithName:@"field"];
[fieldMaxInviteMember addAttributeWithName:@"label" stringValue:@"Allow Occupants to Invite Others?"];
[fieldMaxInviteMember addAttributeWithName:@"type" stringValue:@"boolean"];
[fieldMaxInviteMember addAttributeWithName:@"var" stringValue:@"muc#roomconfig_allowinvites"];
NSXMLElement *inViteValue = [NSXMLElement elementWithName:@"value"];
[inViteValue setStringValue:@"1"];
[fieldMaxInviteMember addChild:inViteValue];
[x addChild:fieldMaxInviteMember];
//仅仅会员开放
NSXMLElement *fieldOnlyMember = [NSXMLElement elementWithName:@"field"];
[fieldOnlyMember addAttributeWithName:@"label" stringValue:@"Make Room Members-Only?"];
[fieldOnlyMember addAttributeWithName:@"type" stringValue:@"boolean"];
[fieldOnlyMember addAttributeWithName:@"var" stringValue:@"muc#roomconfig_membersonly"];
NSXMLElement *onlyMemberValue = [NSXMLElement elementWithName:@"value"];
[onlyMemberValue setStringValue:@"1"];
[fieldOnlyMember addChild:onlyMemberValue];
[x addChild:fieldOnlyMember];
//是否要密码
if ([_passwordTV.text isEqualToString:@""]) {
NSLog(@"没密码");
}else{
NSLog(@"有密码");
NSXMLElement *fieldneedPWord = [NSXMLElement elementWithName:@"field"];
[fieldneedPWord addAttributeWithName:@"label" stringValue:@"Password Required to Enter?"];
[fieldneedPWord addAttributeWithName:@"type" stringValue:@"boolean"];
[fieldneedPWord addAttributeWithName:@"var" stringValue:@"muc#roomconfig_passwordprotectedroom"];
NSXMLElement *fieldneedPWordValue = [NSXMLElement elementWithName:@"value"];
[fieldneedPWordValue setStringValue:@"1"];
[fieldneedPWord addChild:fieldneedPWordValue];
[x addChild:fieldneedPWord];
}
//desciption
if ([_signatureTV.text isEqualToString:@""]) {
NSLog(@"没有描述");
}else{
NSLog(@"%@",_signatureTV.text);
NSXMLElement *fieldesc = [NSXMLElement elementWithName:@"field"];
[fieldesc addAttributeWithName:@"label" stringValue:@"Short Description of Room"];
[fieldesc addAttributeWithName:@"type" stringValue:@"text-single"];
[fieldesc addAttributeWithName:@"var" stringValue:@"muc#roomconfig_roomdesc"];
NSXMLElement *fieldescValue = [NSXMLElement elementWithName:@"value"];
[fieldescValue setStringValue:_signatureTV.text];
[fieldesc addChild:fieldescValue];
[x addChild:fieldesc];
}
NSXMLElement *fielpassword= [NSXMLElement elementWithName:@"field"];
[fielpassword addAttributeWithName:@"label" stringValue:@"The Room Password"];
[fielpassword addAttributeWithName:@"type" stringValue:@"text-single"];
[fielpassword addAttributeWithName:@"var" stringValue:@"muc#roomconfig_roomsecret"];
NSXMLElement *fielpasswordValue = [NSXMLElement elementWithName:@"value"];
[fielpasswordValue setStringValue:_passwordTV.text];
[fielpassword addChild:fielpasswordValue];
[x addChild:fielpassword];
// <field
// var='muc#roomconfig_roomsecret'
// type='text-private'
// label='The Room Password'/>
// <field
//最大成员
NSXMLElement *fieldMaxMember = [NSXMLElement elementWithName:@"field"];
[fieldMaxMember addAttributeWithName:@"label" stringValue:@"Allow Occupants to Invite Others?"];
[fieldMaxMember addAttributeWithName:@"type" stringValue:@"list-single"];
[fieldMaxMember addAttributeWithName:@"var" stringValue:@"muc#roomconfig_maxusers"];
NSXMLElement *maxvVlue = [NSXMLElement elementWithName:@"value"];
[maxvVlue setStringValue:@"30"];
[fieldMaxMember addChild:maxvVlue];
[x addChild:fieldMaxMember];
[_room configureRoomUsingOptions:x];
}
// 房间创建成功后在配置永久属性
- (void)xmppRoomDidCreate:(XMPPRoom *)sender
{
[self sendDefaultRoomConfig];
}
网友评论