diff --git a/lib/node-http-proxy/http-proxy.js b/lib/node-http-proxy/http-proxy.js index 704eec903127d8712784557e7804ca79e0f53677..9a4f3087a7ceda16914a49252e6e95c433c40641 100644 --- a/lib/node-http-proxy/http-proxy.js +++ b/lib/node-http-proxy/http-proxy.js @@ -437,6 +437,8 @@ HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer) } } + self.emit('websocket:start', req, socket, head, this.target); + // // Helper function for setting appropriate socket values: // 1. Turn of all bufferings diff --git a/lib/node-http-proxy/routing-proxy.js b/lib/node-http-proxy/routing-proxy.js index 187cb42203bcfb9e039b6432aa5210ef4367cf91..e8bc0cfb73de0361d881c2a88b7f59df07e5c84f 100644 --- a/lib/node-http-proxy/routing-proxy.js +++ b/lib/node-http-proxy/routing-proxy.js @@ -111,9 +111,17 @@ RoutingProxy.prototype.add = function (options) { this.proxies[key].on('webSocketProxyError', this.emit.bind(this, 'webSocketProxyError')); } - this.proxies[key].on('start', this.emit.bind(this, 'start')); - this.proxies[key].on('forward', this.emit.bind(this, 'forward')); - this.proxies[key].on('end', this.emit.bind(this, 'end')); + [ + 'start', + 'forward', + 'end', + 'websocket:start', + 'websocket:end', + 'websocket:incoming', + 'websocket:outgoing' + ].forEach(function(event) { + this.proxies[key].on(event, this.emit.bind(this, event)); + }, this); }; //