我打算编写一个群聊平台,用于拥挤的情况,例如活动、聚会或表演。
简单的方法是将每个人都放在同一个房间里。但是让一千个人在同一个房间里说话是行不通的。多个可能的并行对话重叠,实际上没有一个可以理解或遵循。
我不是在这里谈论性能问题。我正在寻找设计选项。我在外面找不到这样的讨论。如果有人有链接或建议,那很好:)
到目前为止,我可以考虑以下替代方案和相应的缺点:
- 我可以提供多个容量有限的房间。假设每个房间有 50 人。每个用户可以明确选择一个房间加入,事先知道它的当前容量,或者可以随机放入任何非空和非满的房间。
拥有多个房间的问题是每次都可能有人在一个房间里,因此,如果我想与派对的主人交谈,我必须进入他所在的房间,否则就没有交易。所以...只是选择一个非满室加入可能还不够好。
同样的情况也发生在被随机放置在一个房间里。这可能有助于保持房间平衡,但可能会导致我刚邀请的朋友加入其他随机房间,我们会分开。
- 另一种可能性是有一个房间,里面有一千个人,但只会向房间里的每个人广播一些消息。问题是选择谁可以说话,为什么有人会加入聊天组只是一个期待者:P
例如,对于初学者来说,最初加入的 50 个用户将被允许交谈。只要他们还活着,队列中的下一个将获得加入对话的机会。
或者也许只有最活跃的人(按某些排名)才被允许说话。
- 其他混合替代方案是允许用户创建自己的房间并在房间空置时(自动)关闭这些房间,并且只有受邀的人才能加入他们的房间。
这种替代方案并不能解决尝试与主机交谈的问题,而是让用户有责任保持房间对话的健康。
- 最后一种硬核方法是使用机器学习将每个人都放在同一个房间中,并将消息广播给有限的人(由 ML 算法选择),可能按兴趣或参与对话进行分组。
这里的问题是最近加入的用户没有足够的数据放入任何群组。实际上,大多数聊天消息都太短且太相似,无法应用良好的 ML 分类。
所以....
我正在寻找任何可以帮助分析的参考、建议、论文、想法或任何东西。
这些是客观的答案。请不要关闭这个问题,因为它没有建设性。并且......如果不可避免地关闭,请告诉我提出这个问题的正确地点(这也是对我问题的回答,因为它可以帮助我进入正确的论坛进行分析)。
先谢谢了