使用iphone SDK的XEP 0055(Jabber搜索)

时间:2013-05-02 12:16:57

标签: ios xmpp openfire

我正在ios上创建一个XMPP示例。我想要做的是搜索用户而不是xmpp。我检查了opernfire服务器并启用了搜索插件。我经历了XEP:0055并找到了这一节。我也经历了this so question,但确实

我完成了xmpp连接和登录。现在这里有关于我的服务器的详细信息:

主机名= 10.x.x.x; 服务器名称= abcd;

我从XEP 0055链接获得的请求格式是:

<iq type='set' from='romeo@montague.net/home' to='characters.shakespeare.lit' id='search2' xml:lang='en'>
    <query xmlns='jabber:iq:search'>
        <last>Capulet</last>
    </query>
</iq>

我不知道characters.shakespeare.lit是什么。我假设这是服务器名称。所以我创建了以下请求:

<iq to="abcd" id="search2" xml:lang="en">
    <query xmlns="jabber:iq:search">
       <Username>kapil</Username>
    </query>
</iq>

但我没有得到任何回应。我尝试使用tosearch.abcd替换10.x.x.x值,但我甚至没有收到此rquest的任何响应IQ。

任何帮助PLZ。

3 个答案:

答案 0 :(得分:1)

shakespeare.lit是xmpp主机名。 'characters'是搜索服务名称。

答案 1 :(得分:0)

这是目录服务的名称。如果连接到服务器,则可以检索服务列表并使用该服务器的目录服务。或者,您可以使用任何服务器的目录服务(根据服务的配置,您不必连接到托管服务的服务器)。

答案 2 :(得分:0)

    var iq = $iq({
          type: 'set',
          id: 'search2',
          to: 'vjud.yourserver.org'
    })
.c('query', {xmlns: 'jabber:iq:search'})
.c('x', {xmlns: 'jabber:x:data', type:'submit'})
.c('field', {var: 'first'}).c('value','Rub*').up(); 
conn.sendIQ(iq);

注意: to:characters.shakespeare.lit

不是您的服务器,而是vcard服务搜索。