之前写的SSE在项目中得到应用使用,代替了传统的轮询方式。
但是在实际操作过程中,SSE的确遇到一些问题。
1、部署的时候:NG转发的端口死活不响应!这是NG必须对此接口单独设置处理(主要是为了不影响其他业务接口)
2、认证问题,接口开启拦截器后,默认的SSE请求是不会携带认证信息的。经过GPT4的帮助下:SSE只支持在URL参数中携带认证信息,(前端默认是)不支持 reques Header 放置内容!所以这是SSE在真正应用时的缺点!
下文是NG配置SSE接口
location /SSE接口路径 {
# 代理设置
proxy_pass http://abc.com:9527; # 你的后端服务器地址
proxy_set_header Connection '';
proxy_http_version 1.1;
proxy_buffering off;
proxy_cache off;
# 超时设置
proxy_read_timeout 24h;
proxy_connect_timeout 24h;
proxy_send_timeout 24h;
# CORS设置 - 根据需要调整
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept' always;
if ($request_method = 'OPTIONS') {
return 204;
}
}
特殊说明: 上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com