2011-10-28 39 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... 
} 

所以我没有范围的问题了。

相关问题