2015-10-06 128 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