Javascript 检测Socket.IO处理程序中的事件类型
我对nodeJS和Socket.IO很陌生,现在面临一个问题 有没有办法知道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)
// 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解决方案重复,如果我没有发现我造成了不必要的问题,我会使用它。谢谢你,我不知道为什么我没有想到这一点。