From d65ec54f23a17b98452e691b9263a59dfca5ec98 Mon Sep 17 00:00:00 2001 From: Nina Berg Date: Mon, 7 Apr 2025 11:30:24 -0400 Subject: [PATCH] proxy-backend support sse connections closing Signed-off-by: Nina Berg --- plugins/proxy-backend/src/service/router.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/proxy-backend/src/service/router.ts b/plugins/proxy-backend/src/service/router.ts index a6a52db63a..e58bccd7af 100644 --- a/plugins/proxy-backend/src/service/router.ts +++ b/plugins/proxy-backend/src/service/router.ts @@ -214,8 +214,12 @@ export function buildMiddleware( ].map(h => h.toLocaleLowerCase()), ); - // only forward the allowed headers in backend->client - fullConfig.onProxyRes = (proxyRes: http.IncomingMessage) => { + fullConfig.onProxyRes = ( + proxyRes: http.IncomingMessage, + _, + res: express.Response, + ) => { + // only forward the allowed headers in backend->client const headerNames = Object.keys(proxyRes.headers); headerNames.forEach(h => { @@ -223,6 +227,14 @@ export function buildMiddleware( delete proxyRes.headers[h]; } }); + + // handle SSE connections closed by the backend + // https://github.com/chimurai/http-proxy-middleware/discussions/765 + proxyRes.on('close', () => { + if (!res.writableEnded) { + res.end(); + } + }); }; if (reviveConsumedRequestBodies) {