【问题标题】:XEP 0055 (Jabber search) with iphone SDKXEP 0055(Jabber 搜索)与 iphone SDK
【发布时间】:2013-05-02 12:16:56
【问题描述】:

我正在 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>

但我没有得到任何回应。我尝试用以下search.abcd10.x.x.x 替换to 值,但我什至没有收到此请求的任何响应智商。

任何帮助请。

【问题讨论】:

    标签: ios xmpp openfire


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回复,但不明白您的意思。我做错了什么?
      • 只要阅读你自己引用的 XEP 的第 1 和第 2 节,可以看到“to”指的是目录服务。阅读 XEP-0030 以了解有关 Jabber 网络中服务的更多信息。
      【解决方案3】:
          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);
      

      注意:收件人:characters.shakespeare.lit

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多