如何用Django响应设置服务器端发送事件

How to setup server side sent event with Django response

本文关键字:事件 服务器端 设置 何用 Django 响应      更新时间:2023-09-26

我正在使用Django实现服务器发送事件。

 <script type='text/javascript'>
    var source = new EventSource('/pro_listen');
    console.log(source);
    source.onmessage = function (event) {
      console.log(event.data);
    };
 </script>

和pro_listen代码在这里。

def pro_listen(request):
    return HttpResponse("{'data':'new'}", content_type="text/event-stream")

所以真正的问题是为什么console.log(event.data);不打印任何东西…

更新:

尝试StreamingHttpReponse后,event.data仍然不打印任何东西…

请帮我一下

Django本身不支持Server Side Events和其他持久连接,你应该使用专用的异步框架(如Tornado)来实现这类功能。