2011-10-28 36 views
0

我對nodeJS和Socket.IO相當陌生,並且面臨一個問題。在Socket.IO處理程序中檢測事件類型

有什麼方法可以知道Socket.IO處理程序中的事件類型嗎?我有這樣的代碼:

// Fire the appropriate callback when we receive a message 
// that.received is an array of callback functions 
for (var event in that.received) { 
    socket.on(event, function(message) { 
     // Of course, this won't work because of "event" scope 
     that.received[event](message, this); 
    }); 
} 

所以,我想知道的是觸發我的處理程序的「事件」的實際值。 我試圖用Chrome開發人員工具檢查可用變量,但我無法找到任何東西。

我需要這樣做,因爲我正在編寫一些圍繞Socket.IO的封裝類來處理多個套接字(關於後備服務器的長篇大論)。我希望它足夠通用,可以讓我的處理程序通過它。

任何想法?

+0

可能重複[Javascript閉合內循環 - 簡單實用的例子](http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) – pimvdb

+0

好的解決方案,我會用如果我沒有發現我造成了不必要的問題。 但是,謝謝,我不知道爲什麼我沒有想到這一點。 – PJP

回答

2

好,愚蠢的問題。

我只需要做到這一點:

// Fire the appropriate callback when we receive a message 
for (var event in that.received) { 
    socket.on(event, that.received[event]); 
} 

我是路過「這個」我的回調函數,這是隻是愚蠢。我的回調是這樣的:

function myCallback(message, socket) { 
    // Some code... 
    socket.emit('ack', message.id); 
    // Some code... 
} 

但所有我需要做的是這樣的:

function myCallback(message) { 
    // Some code... 
    this.emit('ack', message.id); 
    // Some code... 
} 

所以我沒有範圍的問題了。

相關問題