XMPPFramework - 如何在“didReceiveIQ”中识别响应是不是是用户的联系人列表?
Posted
技术标签:
【中文标题】XMPPFramework - 如何在“didReceiveIQ”中识别响应是不是是用户的联系人列表?【英文标题】:XMPPFramework - How to identify in 'didReceiveIQ' whether response is user's contactList?XMPPFramework - 如何在“didReceiveIQ”中识别响应是否是用户的联系人列表? 【发布时间】:2014-07-04 04:46:34 【问题描述】:我正在向我的 jabber 服务器发送请求以获取我的联系人列表。
现在我的问题是didReceiveIQ
方法被多次调用。
那么我怎么能确定当 didReciveIQ 被调用时,它应该是我的联系人列表。
【问题讨论】:
【参考方案1】:用于从 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
【讨论】:
谢谢。是否必须发送出席信息?如果是,那么如何做到这一点以及如何管理我的离线和在线名册。你能帮帮我吗? 我对存在感不太关心。我使用我为您之前的问题提供答案的方法处理在线/离线 听着,现在我已经创建了两个数组 (1) 用于在线联系。 (2) 离线联系人数组。现在我在离线数组中添加所有联系人。现在有什么事件将在线好友从离线数组移动到在线数组。 ***.com/questions/24522526/… .check this methods..如果一些在线/离线,这个方法将被调用。U可以与你的数组进行比较并相应地移动 嗨 Suhail,你能回答我最近问的问题吗?谢谢。以上是关于XMPPFramework - 如何在“didReceiveIQ”中识别响应是不是是用户的联系人列表?的主要内容,如果未能解决你的问题,请参考以下文章
XMPPFramework - 如何获取在线和离线好友列表?
XMPPFramework - 如何在“didReceiveIQ”中识别响应是不是是用户的联系人列表?
XMPPFramework - 如何接收名册的存在信息以及名册列表?
如何在目标c中通过ios中的XMPPFramework连接XMPP服务器