得到所有用户的列表和XMPP的状态多用户聊天 我这样做XMPP多用户聊天获取用户列表
<iq from='[email protected]/pda'
id='kl2fax27'
to='[email protected]'
type='get'>
<query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
得到一个名单,但没有状态。 我需要为所有状态的用户知道吗?
得到所有用户的列表和XMPP的状态多用户聊天 我这样做XMPP多用户聊天获取用户列表
<iq from='[email protected]/pda'
id='kl2fax27'
to='[email protected]'
type='get'>
<query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
得到一个名单,但没有状态。 我需要为所有状态的用户知道吗?
请阅读XEP-0045,它描述了多用户聊天(MUC)协议。你需要加入聊天室:
<presence
from='[email protected]/pda'
to='[email protected]/thirdwitch'>
<x xmlns='http://jabber.org/protocol/muc'/>
</presence>
然后,您会从房间它们的当前状态的每个乘员获得存在节:
<presence
from='[email protected]/firstwitch'
to='[email protected]/pda'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<item affiliation='owner' role='moderator'/>
</x>
</presence>
<presence
from='[email protected]/secondwitch'
to='[email protected]/pda'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<item affiliation='admin' role='moderator'/>
</x>
</presence>
你提问之前,没有,没有告诉您何时“完成”接收这些通知,因为用户可能随时出入。您现在订阅了占用者的存在变化,并且必须跟踪接收方当前的情况。
通过XMPP RFC的阅读,我发现状态由状态消息传递,并且您要求另一个实体通过向状态请求发送probe
状态(而不是等待它在广播中告诉您)状态你会得到一个指示响应(§5.5 of the RFC给出了一些例子)。这取决于你自己的意思,当然......
为了完整起见,加入房间后确实有办法告诉所谓的[存在广播](http://xmpp.org/extensions/xep-0045.html#enter-pres)完成:最后的存在始终是自我存在,它由一个''' '''表示。 –
@ max.weller我很确定有些实现会导致错误。 –