xmpp Framework - 检测更改名单列表

时间:2014-03-10 12:07:30

标签: ios web xmpp social-networking xmppframework

如何检测到我的名单列表已更改,某些正文已添加或删除?

我使用该代码在启动时获取名单

- (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 个答案:

答案 0 :(得分:0)

1)所有后续的名册更改将被“推送”给您,其中IQ数据包包含“jabber:iq:roster”有效负载,您需要跟踪收到项目的“订阅”属性并对您的模型进行更改。 2)XMPPFramework已经包含XMPPRoster扩展,它可以为您完成所有工作,只需激活扩展,请参阅XMPPFramework示例。