【发布时间】:2017-12-09 04:25:56
【问题描述】:
当我开始使用 Python(在本例中为 Django Channels)通过网络套接字工作时,我开始想知道公司如何扩展聊天应用程序。
拿这个具体的问题: 用户 A 有一个他们参与的“组消息”列表。用户 A 能够接收来自每个组的通知。让我们假设用户 A 有 5 个不同的组,他想要实时通知。
用户 A 是否有 5 个单独的 Web 套接字连接?这是最简单的,但也是最庞大的,而且肯定不会扩展(如果我们每个用户有 20 个聊天会怎么样)。制作一个 Django 频道“组”非常容易,它可以侦听并向一组特定的人发送通知。
用户 A 是否有 1 个 Web 套接字连接来接收来自许多不同位置的所有通知?如果是这样,用户 A 在后端订阅了什么?在 Django Channels 中,当用户订阅“组”时会创建一个 websocket。如果我们希望每个“组”有一个用户,这似乎违反直觉。在这种情况下,用户 A 订阅了他们自己的个人“组”,而其他后端服务正在根据其他逻辑将消息传递到该特定“组”当收到来自任何使用该服务的用户的消息时实施。
这非常冗长且文本繁重,但它描绘了一个有趣的问题,过去已经扩展到其他公司。我感谢任何信息或见解!
(这是我认为基本相同的问题列表(忽略语言和库的使用)) 1.Websocket multiple Channels vs. One Channel + Server Side handling [GroupChat]
【问题讨论】:
标签: python django websocket django-channels