在mod_muc配置中,我可以看到有一个选项max_user_conferences,它的默认值是100。在我的例子中,我希望一个特定的用户对应用程序中的所有会话进行调整,因此这个帐户必须连接到大约500个会议。我可以将max_user_conferences设置为1000,但是是否有可能通过留下一个会议或为这个用户清除它来降低这个数字呢?
谢谢!
发布于 2020-12-10 21:05:24
我可以想出三种方法来做到这一点:
( A)告诉用户离开不需要管理任务的房间,这样帐户就不会达到500次会议的限制。
( B)将限额提高到高于该帐户所需的数额。当然,其他账户也可以加入这么多房间。如果您是一个没有垃圾邮件发送者或坏人的企业,那么这在您的服务器上可能不是问题。
( C)将此小修补程序应用于ejabberd源代码:
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl
index 9e633a604..e3d7c93e1 100644
--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -2049,11 +2049,11 @@ add_new_user(From, Nick, Packet, StateData) ->
mod_muc_opt:max_user_conferences(StateData#state.server_host),
Collision = nick_collision(From, Nick, StateData),
IsSubscribeRequest = not is_record(Packet, presence),
- case {(ServiceAffiliation == owner orelse
- ((Affiliation == admin orelse Affiliation == owner)
+ case {ServiceAffiliation == owner orelse
+ ((((Affiliation == admin orelse Affiliation == owner)
andalso NUsers < MaxAdminUsers)
orelse NUsers < MaxUsers)
- andalso NConferences < MaxConferences,
+ andalso NConferences < MaxConferences),
Collision,
mod_muc:can_use_nick(StateData#state.server_host,
StateData#state.host, From, Nick),并授予该帐户(例如tomrules@example.com)在MUC服务中的管理权限:
acl:
muc_admin:
user:
- tomrules@example.com
modules:
mod_muc:
access_admin:
- allow: admin
- allow: muc_admin现在,那个用户可以加入无限的房间,其他帐户和往常一样是有限的。
https://stackoverflow.com/questions/65218871
复制相似问题