diff --git a/lib/node-http-proxy/http-proxy.js b/lib/node-http-proxy/http-proxy.js index 704eec9..9a4f308 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 187cb42..e8bc0cf 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); }; //