我是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的包装类来处理多个套接字(关于回退服务器的长篇大论)。我希望它足够通用,可以将我的处理程序传递给它。
有什么想法吗?
答案 0 :(得分:2)
好的,愚蠢的问题。
我只需要这样做:
// 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...
}
所以我不再有范围问题了。