XMPP:如何通过Jabber Id查询特定的名册信息

时间:2013-12-18 11:09:05

标签: xmpp strophe

我是XMPP的初学者。我正在使用Strophe js库。

现在我想知道根据其jabber id 获得一个特定的名册项目。

但是我对什么样的节和我感到困惑。我需要发送的财产。

通过发送这样的IQ节,我已经找到了检索我的名单的方法:

<iq from='juliet@example.com/balcony'
       id='bv1bs71f'
       type='get'>
    <query xmlns='jabber:iq:roster'/>
</iq>

但是我得到了所有联系人列表:

<iq id='bv1bs71f'
       to='juliet@example.com/chamber'
       type='result'>
    <query xmlns='jabber:iq:roster' ver='ver7'>
      <item jid='nurse@example.com' name='Nurse'/>
      <item jid='romeo@example.net' name='Romeo'/>
      <item jid='abc@example.net' name='Abc'/>
      ....
    </query>
</iq>

我的问题是如何通过发送我的联系人JID 作为参数来获取特定项(只有一项结果)?

如果我可以通过SQL解释声明是这样的:

SELECT * FROM roster WHERE jabberID = ....

而不是:

SELECT * FROM roster

我希望通过其JID获取我的联系人昵称

提前致谢:)

1 个答案:

答案 0 :(得分:0)

只需在您的iq中添加“to”属性即可。如果您是共同订阅的,则应返回姓名。

$ iq({type:'get',from:myjid,to:jid})。c('query',{xmlns:Strophe.NS.ROSTER});