XMPP:从完整的JID

时间:2017-06-15 11:52:17

标签: xmpp strophe multiuserchat

我正在使用Node.js中的Strophe库进行XMPP应用程序,目前,我正在尝试获取给定用户所连接的MUC(群组聊天)。

我正在使用XMPP客户端Profanity连接我的XMPP帐户并成功加入我创建的MUC。亵渎告诉我我连接的完整JID,包括资源名称(<user@host/resource>)。

我遵循规范XEP-0045: Multi-User Chat,并且它说您应该首先使用服务发现来检查用户的客户端是否支持MUC服务。这是通过将IQ节发送到用户名为http://jabber.org/protocol/disco#info的完整JID来完成的。

Just like in the specification,我得到的回复包括<feature var='http://jabber.org/protocol/muc'/>行,所以我继续请求MUC。根据规范:

  

这是通过在指定着名的服务发现节点<user@host/resource>时查询联系人的完整JID('http://jabber.org/protocol/muc#rooms')来完成的。

这是我通过strophe发送的IQ节:

$iq({'type':'get', 'to':XMPP.jid, 'id':'rooms2'}).c('query', {'xmlns':Strophe.NS.DISCO_ITEMS, 'node':'http://jabber.org/protocol/muc#rooms'});

但是,当我这样做时,我没有在响应中收到任何<item>元素,就像规范中显示的示例respose一样。尽管我仍然将这个完整的JID连接到Profanity客户端的MUC。

我使用不同的客户端,Conversations(以及不同的完整JID)再次尝试了所有内容,以及使用不同的XMPP帐户(在不同的服务器中),但仍然是相同的空结果,尽管从用户支持MUC的服务发现查询。

有没有人知道是否有解决方案?有没有其他方法可以查询XMPP用户所连接的MUC?

0 个答案:

没有答案