From dc593e99723bd65fa57eaf8c22a16729443577e8 Mon Sep 17 00:00:00 2001 From: Christiaan Date: Fri, 28 May 2010 19:22:54 +0200 Subject: [PATCH] Use EventEmitter public API instead of the private _events array --- lib/socket.io/listener.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/socket.io/listener.js b/lib/socket.io/listener.js index 2e40993483..a44d4b54c4 100644 --- a/lib/socket.io/listener.js +++ b/lib/socket.io/listener.js @@ -27,17 +27,15 @@ Listener = this.Listener = Class({ this.clients = []; this.clientsIndex = {}; - var listener = (this.server._events['request'] instanceof Array) - ? this.server._events['request'][0] - : this.server._events['request']; - if (listener){ - this.server._events['request'] = function(req, res){ - if (self.check(req, res)) return; - listener(req, res); - }; - } else { - throw new Error('Couldn\'t find the `request` event in the HTTP server.'); - } + var listeners = this.server.listeners('request'); + this.server.removeAllListeners('request'); + + this.server.addListener('request', function(req, res){ + if (self.check(req, res)) return; + for (var i = 0; i < listeners.length; i++) { + listeners[i].call(this, req, res); + } + }); this.server.addListener('upgrade', function(req, socket, head){ if (!self.check(req, socket, true)){