我正在使用http-proxy-middleware
将一些 API 端点代理到我的 Create React App 开发服务器。
我最近引入了一个 WebSocket 端点,我正在使用以下代码代理它setupProxy.js
:
const proxy = require('http-proxy-middleware');
const target = 'http://localhost:8000';
module.exports = function(app) {
[...] // other proxies for HTTP endpoints
app.use(proxy('/api/ws', { ws: true, target }));
};
我遇到的问题是,如果我重新启动后端,并且 WebSocket 连接中断,整个开发服务器会崩溃:
[HPM] Upgrading to WebSocket
events.js:170
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:171:27)
Emitted 'error' event at:
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at processTicksAndRejections (internal/process/task_queues.js:81:17)
error Command failed with exit code 1.
我想知道如何优雅地处理 WebSocket 代理中的错误,以便服务器不会崩溃,而是等待 WebSocket 再次可用?