Javascript 检测Socket.IO处理程序中的事件类型

Javascript 检测Socket.IO处理程序中的事件类型,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我对nodeJS和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)

我对nodeJS和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编写某种包装类来处理多个Socket(关于回退服务器的长篇故事)。我希望它足够通用,可以将我的处理程序传递给它

有什么想法吗?

好的,愚蠢的问题

我只需要这样做:

// Fire the appropriate callback when we receive a message
for (var event in that.received) {
    socket.on(event, that.received[event]);
}
我将“this”传递给回调函数,这太愚蠢了。我的回调如下所示:

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...
}

因此,我不再有范围问题。

可能与Nice解决方案重复,如果我没有发现我造成了不必要的问题,我会使用它。谢谢你,我不知道为什么我没有想到这一点。