Appearance
Nginx代理配置
处理Nginx代理WebSocket和SSE请求超时连接问题
nginx
# eventSource
location /es {
proxy_pass https://xxx;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
}
参考
使用fetch-event-source库
前端SSE只能发送GET请求,一般浏览器对链接长度有限制,无法完全发送。为解决这个问题,可以使用 @microsoft/fetch-event-source库来进行流式输出。
javascript
import { fetchEventSource } from '@microsoft/fetch-event-source';
const url = "xxx";
fetchEventSource(url, {
onopen(response) {
console.log('SSE连接已打开', response);
},
onmessage(event) {
console.log('接收到消息:', event.data);
},
onclose() {
console.log('SSE连接已关闭');
},
onerror(err) {
console.error('SSE连接发生错误', err);
},
});