【发布时间】:2014-07-04 04:46:34
【问题描述】:
我正在向我的 jabber 服务器发送请求以获取我的联系人列表。
现在我的问题是didReceiveIQ 方法被多次调用。
那么我怎么能确定当 didReciveIQ 被调用时,它应该是我的联系人列表。
【问题讨论】:
标签: ios xmpp xmppframework
我正在向我的 jabber 服务器发送请求以获取我的联系人列表。
现在我的问题是didReceiveIQ 方法被多次调用。
那么我怎么能确定当 didReciveIQ 被调用时,它应该是我的联系人列表。
【问题讨论】:
标签: ios xmpp xmppframework
用于从 jabber 服务器获取联系人列表
-(void)fetchRosterListWithUserId:(NSString *)userId // yourID
{
NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:roster"];
XMPPIQ *iq = [XMPPIQ iq];
[iq addAttributeWithName:@"id" stringValue:FETCH_ROSTER_DISCO_ID];
[iq addAttributeWithName:@"to" stringValue:userId];
[iq addAttributeWithName:@"type" stringValue:@"get"];
[iq addChild:query];
[_xmppStream sendElement:iq];
你可以得到回复
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
// You can identify the response by using @"id"
if([[iq attributeStringValueForName:@"id"] isEqualToString:FETCH_ROSTER_DISCO_ID])
{
//Extract contact list from response here
}
}
【讨论】: