gpt4 book ai didi

xmpp - ejabberd : what is the best? 中数百万个私有(private) MUC 房间或动态 XEP-0033 对话

转载 作者:行者123 更新时间:2023-12-02 01:27:19 25 4
gpt4 key购买 nike

需要

我有以下场景:

  • ~10万玩家
  • 50 位管理员

每个玩家都可以与每个管理员进行一对一的对话;玩家甚至可以在单独的对话中同时与所有管理员进行一对一的对话。

但在任何时候,其中一个对话的管理员可能会邀请另一个(或许多)管理员加入这数千个对话中的一个。

附加:

  • 使用 MAM 存储的所有消息 default:always
  • 使用 resend_on_timeout:true 进行流管理。
  • 一个玩家不能给另一个玩家发消息

示例:

  • 假设玩家 1 有 3 个活跃的独立对话 P1:Admin A, P1:Admin G, P1:Admin H
  • 然后管理员 A 邀请管理员 H 加入 P1:Admin A 对话(事实上,管理员 H 被邀请加入管理员 A 的对话不会关闭事件的 P1:Admin H conversation),玩家将进行以下事件对话:
    • P1:Admin A + Admin H, P1:Admin G, P1:Admin H

解决方案 #1:Muc 房间

我正在考虑将所有对话都放入私有(private)不可发现的 MUC 房间(当用户想与管理员聊天时,客户端将发出一个自定义 IQ,我将使用一个 ejabberd 模块develop 将处理并创建房间,将玩家和管理员自动列入这个新房间的白名单)。

对于可能意味着 500 万个 MUC 房间的示例场景。我知道 500 万个普通聊天是很常见的情况,但是有这么多房间可以吗?

解决方案 #2:XEP-0033 扩展节寻址

对于此解决方案,我正在考虑将消息标识为具有扩展元素 channel 的房间的一部分。这样收件人就可以进入并进行对话。

但是这个没有MUC房间的安全控制,只有白名单用户才可以在一个 channel 里说话。有没有办法用这种方法来克服隐私问题?

使用 channel 元素的示例:

P1:管理员 A + 管理员 B,房间 1

<message to='header.org' from='player1'>
<addresses xmlns='http://jabber.org/protocol/address'>
<address type='to' jid='adminA'/>
<address type='to' jid='adminB'/>
</addresses>
<channel xmlns='chanel:namespace' id='1'>
<body>Hi admin A and admin B!</body>
</message>

管理员 B 离开,P1:管理员 A,仍然是房间 1

<message to='header.org' from='player1'>
<addresses xmlns='http://jabber.org/protocol/address'>
<address type='to' jid='adminA'/>
</addresses>
<channel xmlns='chanel:namespace' id='1'>
<body>Hi admin A only on the same room!</body>
</message>

最终解决方案?

考虑到客户端和服务器定制不是问题... 考虑到所有需求,哪种解决方案最好?还是有其他最优解?

最佳答案

我有一个类似的设置,这就是我的处理方式:对话从 1:1 聊天开始,因为大多数对话总是 1:1,但如果管理员想邀请另一个管理员甚至另一个用户,我将聊天转换为 MUC session as described in XEP-0045 .

这些 session 室是 hidden and members only ,但它们不是持久的(在最后一个乘员退出后被销毁)。

如果您只打算使用自定义客户端,则多播策略 (XEP-0033) 也可以。如果您使用的是现有客户端,您将无法控制房间。

关于xmpp - ejabberd : what is the best? 中数百万个私有(private) MUC 房间或动态 XEP-0033 对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36386286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com