XMPP多用户聊天获取用户列表

XMPP多用户聊天获取用户列表,xmpp,Xmpp,获取所有用户的列表以及XMPP多用户聊天的状态 我是这样做的 正在获取列表,但没有状态。 我需要让状态上的所有用户都知道?通过阅读,我看到状态是通过状态信息传达的,您可以通过发送一个探测状态请求,请求另一个实体立即报告其状态(而不是等待它在广播中告诉您),您将得到直接响应(给出了一些示例)。由您来正确解释他们说的话,当然…请阅读,其中描述了多用户聊天(MUC)协议。您需要加入聊天室: <presence from='hag66@shakespeare.lit/pda'

获取所有用户的列表以及XMPP多用户聊天的状态 我是这样做的


正在获取列表,但没有状态。 我需要让状态上的所有用户都知道?

通过阅读,我看到状态是通过状态信息传达的,您可以通过发送一个
探测
状态请求,请求另一个实体立即报告其状态(而不是等待它在广播中告诉您),您将得到直接响应(给出了一些示例)。由您来正确解释他们说的话,当然…

请阅读,其中描述了多用户聊天(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>


在你问之前,不,没有办法知道你什么时候“完成”收到这些通知,因为用户可以随时来来去去。您现在订阅了居住者的状态变化,并且必须跟踪接收端的最新信息。

为了完整起见,确实有一种方法可以告诉所谓的在加入房间后结束:最终状态始终是最新状态自我存在,由一个
@max.weller表示,我很确定有些实现会出错。