diff --git a/lib/http-server.js b/lib/http-server.js index 0e946ac7..7f4669cd 100644 --- a/lib/http-server.js +++ b/lib/http-server.js @@ -182,6 +182,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 () {