我IOS聊天應用我使用的Openfire服務器,我檢索特定用戶的好友列表,但現在我想從的Openfire服務器檢索所有的註冊用戶。請幫助我,並提前致謝。用的Openfire服務器的iOS XMPP架構讓所有註冊用戶
2
A
回答
5
嗨,大家好我終於找到了這個備選答案用自己的用戶名搜索用戶。
1.對於每個聯繫我添加emailid username @ domainname像這樣。
2.在地方搜索字符串,如果我們使用域名,那麼我們將得到所有註冊用戶。
//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);
}
0
- (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];
}
}
相關問題
- 1. 在openfire中獲取xmpp ios中的所有註冊用戶
- 2. 用servlet註冊用戶到Openfire XMPP服務器?
- 3. 如何讓所有的用戶在Android上使用smack的openfire xmpp服務器?
- 4. Registert在iOS中使用XMPP的Openfire服務器的新用戶
- 5. iOS XMPP框架獲取所有註冊用戶
- 6. 檢查在xmpp服務器上註冊的jid(jabber id) - iOS xmpp框架
- 7. 如何同步xmpp服務器的openfire用戶和iOS APP用戶
- 8. 允許用戶使用OpenLDAP註冊Openfire服務器
- 9. qxmpp - 獲取在openfire服務器上註冊的所有帳戶的列表
- 10. 使用xmpppy庫在XMPP服務器上註冊用戶
- 11. 在openfire註冊新用戶?
- 12. 如何顯示所有註冊到服務器的用戶
- 13. xmpp(smack和openfire)獲取用戶組註冊狀態?
- 14. 無法連接到使用XMPP安卓客戶端的XMPP服務器(Openfire)
- 15. 新用戶註冊方法xmpp框架iOS
- 16. MongooseIM服務器中的用戶註冊
- 17. asmack XMPP新用戶註冊
- 18. XMPP iOS框架檢測與OpenFire服務器的互聯網斷開問題
- 19. 註冊新用戶的Openfire服務器返回錯誤請求詩節
- 20. java.net.UnknownHostException當連接openfire xmpp服務器時
- 21. XMPP服務器(Openfire)需要實現嗎?
- 22. 如何啓用在XMPP的Openfire服務器的WebSockets
- 23. Openfire:使用openfire服務器中的SASL Anonymous創建用戶
- 24. oauth2服務器用戶註冊
- 25. 保存在openfire服務器中的兩個用戶之間的聊天android xmpp
- 26. 請建議一個帶有自動帳戶註冊的好XMPP服務器
- 27. 得到花名冊上每個用戶的全名openfire xmpp strophe
- 28. 適用於iOS聊天應用程序的openfire服務器
- 29. 使用Facebook數據在XMPP服務器上註冊
- 30. 如何與OpenFire XMPP服務器集成以接收用戶的名單信息?
嗨anjaneyulu,謝謝你的回答,它幫了我很多。我在iq中獲得數據,現在我需要幫助來解析服務器的響應。我不知道該怎麼做。請幫幫我。 –
我從服務器獲得了所有用戶。但不能從XML格式獲得數組。如果任何人都可以提供幫助。那麼請做好必要的事情,我會很樂意欣賞它 –