2015-10-06 204 views
0

我想创建MUC,其中只有1个用户(所有者/管理员)可以发送消息。 其他用户应该在没有任何邀请的情况下加入聊天,但仅限于只读模式。 (有点像新闻提要,解析器将发布消息聊天每次15分钟,任何人都可以加入聊天和看新闻,但没有人可以写这个聊天)XMPP:只读多用户聊天

我已经尝试过:

<field 
    var='muc#roomconfig_moderatedroom'> 
    <value>1</value> 
</field> 

但任何用户仍然可以将消息写入聊天。 我尝试:

<field 
    var='muc#roomconfig_membersonly'> 
    <value>1</value> 
</field> 

在这种情况下,用户不能加入聊天。

有什么建议吗?

回答

1

您可以使用房间的语音策略来决定谁可以和谁不能写入房间。

在你的情况,你需要为你的房间两个角色:

  • 游客
  • 参与者

您可以禁用从改变其角色写的任何用户信息的可能性参与者访客

查看更多有关在XEP-0045在这里是如何管理的声音作品:http://xmpp.org/extensions/xep-0045.html#grantvoice

你需要确保你的XMPP服务器实现了这个扩展。

+0

嗨@Mark,谢谢你的回答。据我所知,默认情况下,所有新成员获得状态参与者。他们可以写邮件,除非我发送到服务器请求将其角色从参与者更改为访问者。那么,我需要以某种方式倾听聊天中的新参与者,并在他们加入后立即更改他们的角色? – Dyrk

+0

这是不正确的:“默认情况下,一个无关联的用户作为访问者进入一个主持室,并作为参与者进入一个开放的房间,一个成员作为参与者进入房间,管理员或所有者作为主持人进入房间。 “ – xnyhps

+0

你需要让你的房间“开放”和“主持”。您可以通过将'muc#roomconfig_moderatedroom'字段值设置为'1'和'muc#roomconfig_passwordprotectedroom'字段值设置为'0'来完成此操作。 – Mark