From 1a4d78e1568677c2c443c64336565d4064d5ab15 Mon Sep 17 00:00:00 2001 From: Hermholtz <15248889+Hermholtz@users.noreply.github.com> Date: Tue, 21 Nov 2023 00:26:53 +0100 Subject: [PATCH] Proxy WebSocket connections and handle errors --- lib/http-server.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/http-server.js b/lib/http-server.js index dfe4c474..8778342b 100644 --- a/lib/http-server.js +++ b/lib/http-server.js @@ -181,6 +181,22 @@ function HttpServer(options) { if (options.timeout !== undefined) { this.server.setTimeout(options.timeout); } + + if (typeof options.proxy === 'string') { + this.server.on('upgrade', function (request, socket, head) { + proxy.ws(request, socket, head, { + target: options.proxy, + changeOrigin: true + }, function (err, req, res) { + if (options.logFn) { + options.logFn(req, res, { + message: err?.message, + status: res?.statusCode }); + } + res.emit('next'); + }); + }); + } } HttpServer.prototype.listen = function () {