【问题标题】:DJango channels subscribe to multiple eventsDJango 频道订阅多个事件
【发布时间】:2022-06-11 15:16:50
【问题描述】:

我有带有频道的 django 应用程序。它打开到加密市场数据提供者的 websocket 连接。我收到了刻度数据,我将这些刻度插入到数据库中。

我还想将该刻度数据发送到其他应用程序(比如前端)。但我无法有效地做到这一点。

目前只有一个前端应用程序存在。因此,当它连接到 django 频道时,我将该连接添加到名为('root')的组,并将所有市场报价数据发送到该组。

所以这里的问题是,如果我决定连接第二个前端应用程序,我会得到第一个用户请求的所有数据(因为两个客户端都存在于 django 的“root”组中)。

我尝试了一种方法,当用户请求特定加密的数据时,我将他添加到该加密命名组(如果用户只想要比特币数据,我将他添加到比特币组) 但是我在 django 服务器上得到了很多 crpto 数据,并且每秒有非常多的滴答声。将每个刻度数据发送到该特定加密组通道(在刻度检查符号上并将该刻度转发到该符号命名的 django 通道)感觉有点慢。

关于如何解决这个问题的任何建议?

【问题讨论】:

    标签: django django-channels stockquotes


    【解决方案1】:

    您可以从 Django 代码中的任何位置向通道组发送数据

    from channels.layers import get_channel_layer
    from asgiref.sync import async_to_sync
    async_to_sync(channel_layer.group_send)("root", {'messages' : message, 'type' : 'chat_message'})
    

    【讨论】:

      猜你喜欢
      • 2013-05-01
      • 2018-01-20
      • 1970-01-01
      • 2022-01-03
      • 2018-02-26
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多