如何检查用户是否在XMPPRoster中?

时间:2012-11-23 06:01:35

标签: xmppframework

我的iOS应用目前正在使用XMPPFramework进行聊天。但我需要它来检查我的联系人列表中是否存在用户给定的xmpp用户名。任何关于在哪里看的想法将不胜感激。

1 个答案:

答案 0 :(得分:1)

您必须了解XMPPRosterXMPPFramework的工作原理。

如果我发送服务器请求朋友的列表,将发送此结构

<iq id="xxx" type="get">
   <query xmlns="jabber:iq:roster"></query>
</iq>

“iq”表示您向服务器查询某些内容,“查询”是您希望收到的内容。

XMPPRosterMemoryStorage *rosterStorate = [[XMPPRosterMemoryStorage alloc] init];
XMPPRoster * roster = [[XMPPRoster alloc] initWithRosterStorage:rosterStorate];
[roster addDelegate:self delegateQueue:dispatch_get_main_queue()];
[roster activate:[self xmppStream]];
[roster fetchRoster];

如果查看fetchRoster方法,可以在源代码上方找到我所写的查询。

你必须在XMPPRosterMemoryStorageDelegate中定义- (void)xmppRosterDidPopulate:(XMPPRosterMemoryStorage *)sender方法

祝你好运。