XEP 0055(Jabber 搜索)与 iphone SDK
Posted
技术标签:
【中文标题】XEP 0055(Jabber 搜索)与 iphone SDK【英文标题】:XEP 0055 (Jabber search) with 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.abcd
和10.x.x.x
替换to
值,但我什至没有收到此请求的任何响应智商。
任何帮助请。
【问题讨论】:
【参考方案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 服务搜索。
【讨论】:
以上是关于XEP 0055(Jabber 搜索)与 iphone SDK的主要内容,如果未能解决你的问题,请参考以下文章
XMPP - iphone sdk 中的用户搜索?在 iphone sdk 中使用 XEP-0055?