【发布时间】:2013-12-29 04:25:58
【问题描述】:
在我的应用程序中,我需要从 OpenFire 获取 All the UserName。
我使用了下面的代码,但它没有给出零数据。
我发现我的 didReceiveIQ 方法出了点问题,但使用的是第一次 XMPP,所以没有遇到实际问题。
我获取数据的代码是
- (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:[NSString stringWithFormat:@"Domain Name with jid"]]
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"];
NSLog(@"queryelement %@",queryElement);
if (queryElement) {
NSLog(@"query in if");
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];
NSLog(@"User in OpenFire = %@",jid);
}
NSLog(@"mArray = %@",mArray);
}
return NO;
}
感谢任何形式的帮助....
【问题讨论】:
-
你能告诉我哪个 XEP 扩展有这个节,你试图通过它来获取所有注册用户。
-
我从 github 将其大部分包含在我的应用程序中,但对它了解不多。但是您知道哪一个最需要它,请告诉我,然后我会告诉您是否包含其中一个。但我得到 mArray nil.
标签: ios iphone xcode xmpp openfire