xmpp 框架 - 检测更改的花名册列表
Posted
技术标签:
【中文标题】xmpp 框架 - 检测更改的花名册列表【英文标题】:xmpp Framework - detection of changing roster list 【发布时间】:2014-03-10 12:07:30 【问题描述】:我如何检测到我的花名册列表已更改,添加或删除了某些成员?
我使用该代码在启动时获取名册列表
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
DDLogVerbose(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, [iq elementID]);
NSXMLElement *queryElement = [iq elementForName: @"query" xmlns: @"jabber:iq:roster"];
if (queryElement)
NSArray *itemElements = [queryElement elementsForName: @"item"];
//[self.cts removeAllObjects];
for (int i=0; i<[itemElements count]; i++)
NSString *jid = [[[itemElements objectAtIndex:i] attributeForName:@"jid"] stringValue];
[self.cts addObject:jid];
NSLog(@"\nRoster ID's %@",self.cts);
【问题讨论】:
【参考方案1】:1) 所有后续名册更改都将通过包含“jabber:iq:roster”有效负载的 IQ 数据包“推送”给您,您需要跟踪收到项目的“订阅”属性并对模型进行更改。 2) XMPPFramework 已经包含 XMPPRoster 扩展,它为您完成所有工作,只需激活扩展,请参阅 XMPPFramework 示例。
【讨论】:
以上是关于xmpp 框架 - 检测更改的花名册列表的主要内容,如果未能解决你的问题,请参考以下文章