iOS XMPP框架与Openfire服务器获取所有注册用户

为我的IOS聊天应用程序我使用Openfire服务器,我检索特定的用户朋友列表,但现在我想从Openfire服务器检索所有注册用户。 请帮助我,并提前感谢。

嗨,大家好我终于find了替代的答案,通过search用户使用他们的用户名。

对于每一个联系我添加emailid username @ domainname像这样。
2.在searchstring的地方,如果我们使用域名,那么我们将获得所有注册用户。

//Request - (void)getDetailsofRegisteredUser { //To Search Peticular User either by using their name, email or username NSString *userBare1 = [[[[self appDelegate] xmppStream] myJID] bare]; NSXMLElement *query = [NSXMLElement elementWithName:@"query"]; [query addAttributeWithName:@"xmlns" stringValue:@"jabber:iq:search"]; NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"jabber:x:data"]; [x addAttributeWithName:@"type" stringValue:@"submit"]; NSXMLElement *formType = [NSXMLElement elementWithName:@"field"]; [formType addAttributeWithName:@"type" stringValue:@"hidden"]; [formType addAttributeWithName:@"var" stringValue:@"FORM_TYPE"]; [formType addChild:[NSXMLElement elementWithName:@"value" stringValue:@"jabber:iq:search" ]]; NSXMLElement *userName = [NSXMLElement elementWithName:@"field"]; [userName addAttributeWithName:@"var" stringValue:@"Username"]; [userName addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1" ]]; NSXMLElement *name = [NSXMLElement elementWithName:@"field"]; [name addAttributeWithName:@"var" stringValue:@"Name"]; [name addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]]; NSXMLElement *email = [NSXMLElement elementWithName:@"field"]; [email addAttributeWithName:@"var" stringValue:@"Email"]; [email addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]]; //Here in the place of SearchString we have to provide registered user name or emailid or username(if it matches in Server it provide registered user details otherwise Server provides response as empty) NSXMLElement *search = [NSXMLElement elementWithName:@"field"]; [search addAttributeWithName:@"var" stringValue:@"search"]; [search addChild:[NSXMLElement elementWithName:@"value" stringValue:[NSString stringWithFormat:@"%@", SearchString]]]; [x addChild:formType]; [x addChild:userName]; [x addChild:name]; [x addChild:email]; [x addChild:search]; [query addChild:x]; NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"]; [iq addAttributeWithName:@"type" stringValue:@"set"]; [iq addAttributeWithName:@"id" stringValue:@"searchByUserName"]; [iq addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"search.%@",DOMAIN_NAME]]; [iq addAttributeWithName:@"from" stringValue:userBare1]; [iq addChild:query]; [[[self appDelegate] xmppStream] sendElement:iq]; } //We will get response here - (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq { DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD); NSLog(@"searched format %@", iq); } 
 - (void)getAllRegisteredUsers { NSError *error = [[NSError alloc] init]; NSXMLElement *query = [[NSXMLElement alloc] initWithXMLString:@"<query xmlns='http://jabber.org/protocol/disco#items' node='all users'/>" error:&error]; XMPPIQ *iq = [XMPPIQ iqWithType:@"get" to:[XMPPJID jidWithString:@"DOMAIN"] elementID:[xmppStream generateUUID] child:query]; [xmppStream sendElement:iq]; } - (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq { NSXMLElement *queryElement = [iq elementForName: @"query" xmlns: @"http://jabber.org/protocol/disco#items"]; if (queryElement) { NSArray *itemElements = [queryElement elementsForName: @"item"]; NSMutableArray *mArray = [[NSMutableArray alloc] init]; for (int i=0; i<[itemElements count]; i++) { NSString *jid=[[[itemElements objectAtIndex:i] attributeForName:@"jid"] stringValue]; [mArray addObject:jid]; } }