当前位置:  开发笔记 > 后端 > 正文

使用Django Server已发送事件和数据库保存

如何解决《使用DjangoServer已发送事件和数据库保存》经验,为你挑选了1个好方法。

我正在尝试在Django Framework中实现服务器发送事件(SSE).我很清楚我可以这样实现view:

@csrf_exempt
def event_stream(request):
    def eventStream():
        yield "data:Server Sent Data\n\n"

    response = HttpResponse(eventStream(), content_type="text/event-stream")
    response['Cache-Control'] = 'no-cache'
    return response

但是我想在数据库表中创建一个新条目时触发SSE调用,从post_save表中可以实现,因为eventStream这里是生成器函数.



1> zxzak..:

Django是围绕请求/响应周期构建的,这意味着它不能与websockets甚至SSE一起使用.在您的示例中,除非您在视图中使用订阅队列(rabbitmq,redis pubsub)并在信号处理程序中发送数据,否则无法将post_save信号传播到视图.

考虑从服务器推送的其他解决方案:

长期民意调查

Django频道

像nodejs或龙卷风一样的异步解决方案,或者与Django一起使用

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有