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