正确的搜索XMPP服务器电子邮件的语法?

时间:2012-02-06 11:35:07

标签: objective-c xmpp openfire xmppframework

我有一个XMPP的Objective-c实现,我正在尝试搜索用户。我使用可预测的JID命名系统,其中用户JID由语法'fbFACEBOOK_ID'组成。

我最初尝试直接查询以查找匹配的JID,但发现XMPP似乎不支持,所以相反,我让用户在他们的电子邮件字段中设置了他们的JID。

以下XML IQ在仅输入查询时正常工作,但在有多个查询时无法获得任何结果。这不是一次搜索多个术语的正确语法吗?

<iq type="set" from="hag66@shakespeare.lit/pda" to="search.shakespeare.lit" id="search2" xml:lang="en">
    <query xmlns="jabber:iq:search"><email>*fb000000001*</email></query>
    <query xmlns="jabber:iq:search"><email>*fb000000002*</email></query>
    <query xmlns="jabber:iq:search"><email>*fb000000003*</email></query>
    <query xmlns="jabber:iq:search"><email>*fb000000004*</email></query>
    <query xmlns="jabber:iq:search"><email>*fb000000005*</email></query>
</iq>

另请参阅:XMPP Query Group Chat (MUC) directory using search term

编辑:我尝试过使用一个查询和多个电子邮件元素而没有运气 编辑2:那么,这似乎不可能?

2 个答案:

答案 0 :(得分:0)

<iq>元素必须只有一个子元素,因此不起作用。 XEP 55: Jabber Search没有定义任何专门搜索多个术语的方法,所以看起来你运气不好。

答案 1 :(得分:-1)

不是在不同的查询中编写,而是在单个查询标记中尝试。它对我有用。

 <query xmlns="jabber:iq:search">

     <email>abc@gmail.com</email>
     <email>bbc@gmail.com</email>

 </query>