【发布时间】:2021-03-16 20:08:03
【问题描述】:
我一直在玩 django 频道 + 角度。我创建了一个应用程序,它只是通过计数器 1、2、3、4 向前端发送通知。它工作正常,除非我在多个选项卡中打开页面。我也无法断开与 websocket 的连接,我可以使用取消订阅,但它并没有真正关闭连接,但这更像是一个角度问题。无论如何,我怎样才能使我的套接字多线程,所以如果我从同一台计算机但从不同的选项卡发出多个请求,它将起作用,因此将创建 2 个不同的消费者实例,如果我在同一台计算机上加载 2 个页面,计数器应该不同的独立增加计数器。我需要 redis 吗?
【问题讨论】:
-
你想要的是默认行为。如果您从每个选项卡中的角度侧创建单独的连接,那么您将在 Django 侧具有单独的连接。当前打开单独的选项卡时究竟会发生什么?你应该对你的问题提出质疑。至于 Redis,您将需要一个正常运行的 Channel 层(Redis、Rabbit-MQ 等)来实现跨不同服务器实例的群组消息传递以及 Channels 中的其他内容,但不是专门为此
-
当我打开 2 个选项卡时,其中一个将冻结,前端实际上不会收到任何内容,似乎从服务器发送的两条消息都转到了最近打开的页面。只允许一个连接。我在本地运行它也许这是导致问题的原因?
标签: python django angular websocket django-channels