相关疑难解决方法(0)

Django Channels-不断从服务器向客户端发送数据

请看这个例子

如您所见,某种形式的event内容不断发送给客户端。我想模仿Django-Channels里面使用consumers.py。这是我所拥有的简化版本:

class ChatConsumer(AsyncConsumer):
    async def ws_connect(self, event):
        self.send = get_db_object()

        ....

        await self.send({
            "type": "websocket.accept"
        })

    # I need to CONSTANTLY receive & send data
    async def ws_receive(self, event):

        obj = ...# query DB and get the newest object

        json_obj = {
            'field_1': obj.field_1,
            'field_2': obj.field_2,
        }

        await self.send({
            "type": "websocket.send",
            "text": json.dumps(json_obj)
        })


    @database_sync_to_async
    def get_db_object(self, **kwargs):
        return Some_Model.objects.get(**kwargs)[0]
Run Code Online (Sandbox Code Playgroud)

在这里,我希望我的Django后端能够不断运行:

  1. 查询数据库

  2. 从数据库接收obj

  3. 将收到的obj发送给前端Websocket event

我该如何实现?重要的是,我需要不变地将数据发送到客户端。

Django-Channels互联网上的大多数资源仅包含聊天应用程序,而不必经常将数据发送到客户端。我找不到能完成此工作的任何工作代码。

请不要再提出关于Redis或渠道文档的建议...或者缺少一些缺少良好文档的随机第3方库...。推荐起来很容易,但是很难实现。例如,我发现有人推荐 …

django websocket channels django-channels

6
推荐指数
1
解决办法
2189
查看次数

标签 统计

channels ×1

django ×1

django-channels ×1

websocket ×1