Xmpp 发现MUC房间的成员是占用者

Xmpp 发现MUC房间的成员是占用者,xmpp,ejabberd,xmppframework,multiuserchat,Xmpp,Ejabberd,Xmppframework,Multiuserchat,作为一名居住者/成员,我需要了解ejabberd-14.x房间中的所有“成员” 我跟着 我被禁止(401)遵守stanze-需要管理员权限 <iq from='crone1@shakespeare.lit/desktop' id='member3' to='coven@chat.shakespeare.lit' type='get'> <query xmlns='http://jabber.org/protocol/muc#admin'>

作为一名居住者/成员,我需要了解ejabberd-14.x房间中的所有“成员”

我跟着

我被禁止(401)遵守stanze-需要管理员权限

<iq from='crone1@shakespeare.lit/desktop'
    id='member3'
    to='coven@chat.shakespeare.lit'
    type='get'>
  <query xmlns='http://jabber.org/protocol/muc#admin'>
    <item affiliation='member'/>
  </query>
</iq>

如果我改变

<query xmlns='http://jabber.org/protocol/muc#admin'> 

从管理员到用户名称空间,然后我得到状态代码501-功能未实现

你知道我怎样才能得到一个房间的成员作为居住者或成员吗

在这个用例中,我不是管理员/版主

XEP-0045确实说:

注:服务还应将成员名单返回给任何居住者 会员专用房间;i、 例如,它不应该产生错误 当会议室中的一名成员请求成员列表时。此功能 可以帮助客户展示所有现有会员,即使其中一些 他们不在房间内,例如,帮助一名成员确定另一名成员是否在房间内 应该邀请用户。服务还应允许任何成员 即使尚未成为占用者,也检索成员列表


您需要自己至少是一名成员才能访问从属关系列表。不管你现在是否是一个居住者(即在房间里)

请注意,从属关系(例如“成员”)是一个持久设置,需要显式地提供给那些默认为“无”的人。在一个普通的不受限制的房间里。成员列表与占用者列表无关

(如果您只想知道谁当前在房间里,您应该发送一个带有名称空间
http://jabber.org/protocol/disco#items
而不是
muc#admin

示例(刚刚在我的ejabberd服务器上试用过)。正在尝试使用非附属帐户查询列表:

<iq from='crone1@shakespeare.lit/desktop'
    id='member3'
    to='coven@chat.shakespeare.lit'
    type='get'>
  <query xmlns='http://jabber.org/protocol/muc#admin'>
    <item affiliation='member'/>
  </query>
</iq>
<iq from='coven@chat.shakespeare.lit'
    to='crone1@shakespeare.lit/desktop'
    type='error'
    id='member3'>
  <query xmlns='http://jabber.org/protocol/muc#admin'>
    <item affiliation='member'/>
  </query>
  <error code='403' type='auth'>
    <forbidden/>
    <text>Administrator privileges required</text>
  </error>
</iq>

需要管理员权限
使用特权(房间所有者)帐户授予第一个帐户成员特权:

<iq from='admin@shakespeare.lit/desktop'
    type='set'
    to='coven@chat.shakespeare.lit'
    id='member4'>
  <query xmlns='http://jabber.org/protocol/muc#admin'>
    <item jid='crone1@shakespeare.lit' affiliation='member'/>
  </query>
</iq>

<iq to='admin@shakespeare.lit/desktop'
    from='coven@chat.shakespeare.lit'
    type='result' id='member4'/>

重试:

<iq from='crone1@shakespeare.lit/desktop' 
    type='get'
    to='coven@chat.shakespeare.lit'
    id='member5'>
  <query xmlns='http://jabber.org/protocol/muc#admin'>
    <item affiliation='member'/>
  </query>
</iq>

<iq to='crone1@shakespeare.lit/desktop'
    from='coven@chat.shakespeare.lit'
    type='result'
    id='member5'>
  <query xmlns='http://jabber.org/protocol/muc#admin'>
    <item jid='crone1@shakespeare.lit' affiliation='member'/>
  </query>
</iq>