iOS XMPP Framework с Openfire Server получает всех зарегистрированных пользователей

для моего приложения для чата IOS я использую сервер Openfire, я получаю список друзей определенного пользователя, но теперь я хочу получить всех зарегистрированных пользователей из Openfire Сервер. Пожалуйста, помогите мне и спасибо заранее.


person Anjaneyulu Battula    schedule 29.11.2013    source источник


Ответы (2)


Наконец, я нашел альтернативный ответ для этого, выполнив поиск пользователей по имени пользователя:

1. для каждого контакта я добавляю адрес электронной почты 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);

}
person Anjaneyulu Battula    schedule 14.03.2014
comment
Привет, анджанейулу, спасибо за ответ, он мне очень помог. Я получил данные в iq, теперь мне нужна помощь, чтобы разобрать ответ от сервера. Я не знаю, как это сделать. Помогите пожалуйста мне. - person sham.y; 19.11.2014
comment
Я получил всех пользователей с сервера. Но не могу получить его в массиве из формата xml. Если кто может помочь. тогда, пожалуйста, сделайте необходимое. Я буду рад это оценить - person Dimple; 03.10.2016

person    schedule
comment
привет, Рахул, у меня нет зарегистрированных пользователей, которые находятся на сервере. Не могли бы вы сказать что-нибудь. - person Romance; 16.12.2013
comment
Я использую правильный ДОМЕН, я сомневаюсь, что на сервере 20 пользователей, и один пользователь - мой друг, остальные 19 пользователей находятся на сервере. Мне нужны все пользователи, которые есть на сервере, я не спрашиваю о групповом чате, я Спрашивая нормальный чат, одноранговый. - person Romance; 16.12.2013
comment
@Романс, ты понял это? Я застрял в той же проблеме. - person Singh; 01.03.2014
comment
@Romance также не могли бы вы подтвердить, какой JID вы указали в запросе ?? - person Singh; 02.03.2014
comment
@RahulPatel, у меня та же проблема, не могли бы вы помочь ?? - person Singh; 04.03.2014
comment
@exceptionx0000f: у меня нет доступа к моей системе для проверки кода, но не могли бы вы проверить forum.ag-software.net/thread/ ? это может помочь тебе - person Rahul Patel; 04.03.2014
comment
@RahulPatel Спасибо, Рахул, за ваш ответ, но у меня он не работает. Возможно, этот код не работает с Openfire Server. - person Anjaneyulu Battula; 14.03.2014