前端使用SSE 事件数据被截断,报错net::ERR_HTTP2_PROTOCOL_ERROR 200
时间: 2024-01-29 08:36:10 浏览: 160
如果前端使用 SSE,但是事件数据被截断并且报错 `net::ERR_HTTP2_PROTOCOL_ERROR 200`,这可能是因为浏览器在使用 HTTP/2 协议时出现了错误。可以尝试以下方法解决问题:
1. 使用 HTTP/1.1 协议:在前端代码中,将 SSE 的 URL 修改为使用 HTTP/1.1 协议,例如:
```
const eventSource = new EventSource('http://example.com/sse', { withCredentials: true, https: false });
```
2. 调整缓冲区大小:在前端代码中,将事件数据的缓冲区大小调整为较大值,例如:
```
const eventSource = new EventSource('http://example.com/sse', { withCredentials: true, https: true });
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
// 处理数据
};
eventSource.onerror = (event) => {
console.error(event);
// 连接错误,尝试重新连接
setTimeout(() => {
const newEventSource = new EventSource('http://example.com/sse', { withCredentials: true, https: true });
newEventSource.onmessage = eventSource.onmessage;
newEventSource.onerror = eventSource.onerror;
eventSource.close();
eventSource = newEventSource;
}, 1000);
};
```
尝试以上方法仍然无法解决问题,可以尝试升级浏览器版本或者使用其他浏览器。
阅读全文