创建空间,如果已创建空间,您可以使用此代码轻松加入现有组
- (void)createOrEnterRoom:(NSString *)groupName
{
BOOL flag=valueExistInGroup(groupName);
if (flag==TRUE) {
savevalueInGroup(groupName);
XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init];
XMPPJID *roomJID = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@conference.your_server_name",groupName]];
XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomStorage
jid:roomJID
dispatchQueue:dispatch_get_main_queue()];
[xmppRoom activate:xmppStream];
[xmppRoom addDelegate:self
delegateQueue:dispatch_get_main_queue()];
[xmppRoom joinRoomUsingNickname:xmppStream.myJID.user
history:nil
password:nil];
}
else
{
NSString *strJid=[AppSetting getUserId];
strJid=[strJid stringByAppendingFormat:@"@your_server_name"];
_xmppRoomStorage = [XMPPRoomHybridStorage sharedInstance];
XMPPJID *roomJid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@conference.52.10.97.23",groupName]];
XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:_xmppRoomStorage jid:roomJid];
[xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];
[xmppRoom activate:xmppStream];
NSXMLElement *history = [NSXMLElement elementWithName:@"history"];
[history addAttributeWithName:@"maxstanzas" stringValue:@"10"];
[xmppRoom joinRoomUsingNickname:strJid history:nil];
}
}
- (void)xmppRoomDidJoin:(XMPPRoom *)sender{
[sender fetchConfigurationForm];
}
- (void)fetchConfigurationForm
{
dispatch_block_t block = ^{ @autoreleasepool {
XMPPLogTrace();
//
// id='config1'
// to='coven@chat.shakespeare.lit'>
//
//
NSString *fetchID = [xmppStream generateUUID];
NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:XMPPMUCOwnerNamespace];
XMPPIQ *iq = [XMPPIQ iqWithType:@"get" to:roomJID elementID:fetchID child:query];
[xmppStream sendElement:iq];
[responseTracker addID:fetchID
target:self
selector:@selector(handleConfigurationFormResponse:withInfo:)
timeout:60.0];
}};
if (dispatch_get_specific(moduleQueueTag))
block();
else
dispatch_async(moduleQueue, block);
}