具体介绍参考园友 SSE:服务器发送事件,使用长链接进行通讯,以下只做个人实现的分享;
nginx.config:
location /apis { rewrite ^.+apis/?(.*)$ /$1 break; include uwsgi_params; proxy_pass http://192.168.5.127:8088/; proxy_buffering off;//(关键参数) }
不配置proxy_buffering off的话,会出现请求发出后,接口收到直接返回,无法保持长连接。
参考网上说明:proxy_buffering这个参数用来控制是否打开后端响应内容的缓冲区,如果这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。
前端js代码(angularjs框架):
if (!!window.EventSource) { var source = new EventSource('/apis/messages'); source.onopen = function(event) { // handle open event }; source.onmessage = function(event) { var data = event.data; console.log("hb_data:"+data); //广播信息 $scope.$broadcast("BroadInfo",data); // handle message }; }