我尝试使用 iq 方法使用 strope.js,并且可以获取在线用户数量,但无法从 Openfire 3.9.3 服务器获取在线用户列表。
XMPP 请求正文:
<iq from='admin@localhost/7adf302e' to='admin@localhost' type='set' xml:lang='en' xmlns='jabber:client' id='6816:sendIQ'>
<command xmlns='http://jabber.org/protocol/commands' node='http://jabber.org/protocol/admin#get-online-users-list' />
</iq>
XMPP 响应
<iq xmlns="jabber:client" type="error" id="6816:sendIQ" from="admin@localhost" to="admin@localhost/7adf302e">
<command xmlns="http://jabber.org/protocol/commands" node="http://jabber.org/protocol/admin#get-online-users-list"/>
<error code="404" type="cancel">
<item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
引用: http://xmpp.org/extensions/xep-0133.html#get-online-users-list
最佳答案
如 XEP-0050 中所述,命令请求的 item-not-found
错误响应意味着“响应的 JID 找不到请求的命令节点”,即服务器不支持获取在线用户列表的命令.
快速浏览一下 Openfire 源代码,它似乎确实支持 Get List of Active Users节点 http://jabber.org/protocol/admin#get-active-users
上的命令。看起来这个命令只是返回连接到服务器的用户,所以我不确定这与本例中的“获取所有在线用户”命令是否有任何不同。
关于javascript - XEP-0133 : Admin request to get all online users list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26276122/