如何在ios中为搜索用户的xmpp Chat应用程序集成XEP-0055

时间:2014-03-31 05:07:34

标签: ios iphone

我正在iOS上创建一个XMPP聊天应用。我想做的是通过XMPP搜索用户。我查看了 opernfire 服务器,并启用了搜索插件。我经历了 XEP:0055并找到了这一节。

2 个答案:

答案 0 :(得分:0)

请参阅http://xmpp.org/extensions/xep-0055.html以获取有关您应发送并希望收回的XML格式的参考。

如果您尝试执行搜索,以下是通过电子邮件地址搜索用户的示例

    NSString *bareJID  = [self.xmppStream.myJID bare];

    NSXMLElement *query = [NSXMLElement elementWithName:@"query"];
    [query addAttributeWithName:@"xmlns" stringValue:@"jabber:iq:search"];

    NSXMLElement *email = [NSXMLElement elementWithName:@"email" stringValue:searchQuery];
    [query addChild:email];

    NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"];
    [iq addAttributeWithName:@"type" stringValue:@"set"];
    [iq addAttributeWithName:@"id" stringValue:@"search2"];
    [iq addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"search.%@",self.xmppStream.myJID.domain]];
    [iq addAttributeWithName:@"from" stringValue:bareJID];
    [iq addAttributeWithName:@"xml:lang" stringValue:@"en"];
    [iq addChild:query];
    [self.xmppStream sendElement:iq];

在xmppStream的回调中:didReceiveIQ:您将收到服务器的响应,其响应与您在上面指定的ID相同(在本例中为#search; search2')。这将是一个XML响应,如我在XEP-0055参考页面中提到的初始URL所示,您可以相应地解析它。

答案 1 :(得分:0)

你可以去http://blog.csdn.net/dangfm/article/details/36185879,然后按照'搜索关键词'来汇编XML(iq),然后_xmppStream发送它(iq)。