获取所有用户的列表以及XMPP多用户聊天的状态 我这样做了
<iq from='hag66@shakespeare.lit/pda'
id='kl2fax27'
to='coven@chat.shakespeare.lit'
type='get'>
<query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
获取列表但没有状态。 我需要知道状态的所有用户吗?
答案 0 :(得分:7)
请阅读XEP-0045,其中介绍了多用户聊天(MUC)协议。你需要加入房间:
<presence
from='hag66@shakespeare.lit/pda'
to='coven@chat.shakespeare.lit/thirdwitch'>
<x xmlns='http://jabber.org/protocol/muc'/>
</presence>
然后,你将从房间的每个占用者那里得到一个状态节,其当前状态为:
<presence
from='coven@chat.shakespeare.lit/firstwitch'
to='hag66@shakespeare.lit/pda'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<item affiliation='owner' role='moderator'/>
</x>
</presence>
<presence
from='coven@chat.shakespeare.lit/secondwitch'
to='hag66@shakespeare.lit/pda'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<item affiliation='admin' role='moderator'/>
</x>
</presence>
在您提出问题之前,没有,当您“完成”接收这些通知时,无法判断,因为用户可能随时来来往往。您现在订阅了占用者的存在变化,并且必须跟踪接收方的当前状态。
答案 1 :(得分:1)
通过XMPP RFC阅读,我看到状态是通过状态消息传达的,并且您要求另一个实体现在通过发送{来报告其状态(而不是等待它在广播中告诉您) {1}}状态请求,您将获得定向响应(§5.5 of the RFC提供了一些示例)。当然,你可以正确地解释他们所说的内容......