当我开始使用Python(在本例中为Django Channels)的Web套接字时,我开始想知道公司如何扩展聊天应用程序 .
解决这个特定问题:用户A有一个他们参与的“群组消息”列表 . 用户A能够接收来自每个群组的通知 . 让我们假设用户A有5个不同的组,他希望实时通知 .
-
用户A是否有5个单独的Web套接字连接?这是最简单的,但最庞大,肯定不会扩展(如果我们每个用户有20个聊天怎么办) . 制作一个侦听并向一个特定人群发送通知的Django Channels “群组”非常容易 .
-
用户A是否有1个Web套接字连接从所有位置接收所有通知?如果是这样,用户A在后端订阅了什么?在Django Channels中,当用户订阅“Group”时会生成websocket . 如果我们想要每个“组”一个用户,这似乎是反直觉的 . 在这种情况下,用户A订阅他们自己的个人“组”,其他后端服务正在根据其他逻辑向该特定“组”传递消息 . 从使用该服务的任何用户收到消息时实现 .
这是非常冗长和文字繁重,但它描绘了一个有趣的问题,在过去已经扩展到其他公司 . 我感谢任何信息或见解!
(这是我认为基本相同的问题列表(忽略语言和库使用))1 . Websocket multiple Channels vs. One Channel + Server Side handling [GroupChat]
1 回答
首先创建一个配置文件模型
然后创建一个消息模型:
然后使用Django信号发送通知:
对不起我的英语不好 : ))