Django Channels:如何刷新发送缓冲区

Posted

技术标签:

【中文标题】Django Channels:如何刷新发送缓冲区【英文标题】:Django Channels: How to flush send buffer 【发布时间】:2018-01-12 21:53:29 【问题描述】:

我正在使用带有 Channels 的 Django 1.10 作为我正在构建的应用程序的后端。 我已经在我的客户端(Angular 4)和 Django 之间建立了 websocket 通信。一切正常,但我有点困惑。

考虑以下代码:

@channel_session
def ws_receive(message):
    for a in range(10):
        message.reply_channel.send('text': json.dumps('test': '123'))
        time.sleep(1)

我在客户端 for 循环完成迭代后收到响应,在本例中为 10 秒后。

问题:是否可以刷新send“缓冲区”,这意味着message.reply_channel.send 函数将立即发送?

【问题讨论】:

【参考方案1】:

即时回复集immediately=True:

message.reply_channel.send('text': json.dumps('Hejsa!!': 'hihi'), immediately=True)

【讨论】:

以上是关于Django Channels:如何刷新发送缓冲区的主要内容,如果未能解决你的问题,请参考以下文章

Django Channels 2.x 还是 Ajax?

Django Channels 不向 Android App 发送消息

通过 celery 向 django-channels 发送消息

使用来自外部Consumer类的Django Channels发送消息

如何处理高传入数据并将受限制的数据发送到 django-channels 中的 Web 套接字

[Django] [channels] [python]如何上传静态文件(图像,文档)?