agsXMPP,创建 muc 房间“只允许占用者向会议发送消息”

Posted

技术标签:

【中文标题】agsXMPP,创建 muc 房间“只允许占用者向会议发送消息”【英文标题】:agsXMPP, Create muc room "Only occupants are allowed to send messages to the conference" 【发布时间】:2020-01-06 14:02:50 【问题描述】:

我需要 agsXMPP

方面的帮助
    用户(testz2@mx.testserverz.info)授权成功 用户 testz2@mx.testserverz.info 创建了 muc 房间(群聊) testconfa@conference.mx.testserverz.info 3.用户testz2@mx.testserverz.info 发送请求邀请另一个用户到这个房间, 但是服务器返回消息
    <message xmlns="jabber:client" from="testconfa@conference.mx.testserverz.info" to="testz2@mx.testserverz.info/agsXMPP" type="error" xml:lang="en">
       <error type="modify" code="406">
          <not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
          <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Only occupants are allowed to send messages to the conference</text>
       </error>
       <body>Hi everybody...</body>
    </message>

房间的创建者如何成为房间的成员并邀请其他用户进入该房间?

【问题讨论】:

【参考方案1】:

房间的创建者如何成为房间的成员并邀请其他用户进入该房间?

不,用户不需要成为房间 member ,这是一个从属关系:https://xmpp.org/extensions/xep-0045.html#affil

你想要的是用户成为房间occupant,这意味着用户加入/进入房间。

如果用户发送中介邀请,则发送邀请时必须是房间入住者,如:https://xmpp.org/extensions/xep-0045.html#invite

因此,用户必须加入/进入他创建的房间:https://xmpp.org/extensions/xep-0045.html#enter,然后他才能发送邀请。

在您正在使用的库中实现客户端加入房间的代码是什么?抱歉,我不知道那个库。

【讨论】:

以上是关于agsXMPP,创建 muc 房间“只允许占用者向会议发送消息”的主要内容,如果未能解决你的问题,请参考以下文章

不允许任何所有者撤销创建房间/MUC 的用户的所有权 - Ejabberd XMPP

使用 aSmack 为 XMPP 群聊创建 MUC 房间时出现 ClassCastException

MUC 房间被锁定,默认安装 tigase

strophe js MUC房间

xmpp/smack : muc(MultiUserChat:多人聊天)房间配置表单

如何知道谁在 MUC 房间收到了消息