From 5df6e7bdb8d4685a18e94ff1bf117ce8eff8d1c9 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Tue, 23 Oct 2012 23:54:23 +0400 Subject: [PATCH] http-proxy: emit websocket:start * routing-proxy: allow listening for websocket:* event --- lib/node-http-proxy/http-proxy.js | 2 ++ lib/node-http-proxy/routing-proxy.js | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/node-http-proxy/http-proxy.js b/lib/node-http-proxy/http-proxy.js index 704eec903..9a4f3087a 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 187cb4220..e8bc0cfb7 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); }; //