捕获socket.io中的任何事件

捕获socket.io中的任何事件,socket.io,Socket.io,在我的socket.io应用程序中,我碰巧有几个具有类似处理程序的事件。以下是一个简化的示例: socket.on('event1', function (data) { print "1"; }); socket.on('event2', function (data) { print "2"; }); 等等 有没有一种方法可以编写单个事件处理程序来捕获此类事件,并使用特定的事件名称调用回调?也许是这样的: socket.on(function (e

在我的socket.io应用程序中,我碰巧有几个具有类似处理程序的事件。以下是一个简化的示例:

  socket.on('event1', function (data) {
     print "1";
  });

  socket.on('event2', function (data) {
     print "2";
  });
等等

有没有一种方法可以编写单个事件处理程序来捕获此类事件,并使用特定的事件名称调用回调?也许是这样的:

  socket.on(function (event, data) {
     print event;
  });

我遇到了和你一样的问题。到目前为止,socket.io不支持此功能。
在我的项目中,我将客户机代码从“socket.emit”更改为“socket.send”,并自己进行对象序列化。

我将使用
socket.io事件
它完全执行您正试图执行的操作。

A.这实际上不是一个单一的事件处理程序。。。如果有许多事件,我仍然需要许多处理程序。函数“foo”不知道触发它的事件类型。那么我肯定不理解你的问题。您的原始代码有什么问题?您可以监听一个特殊的“消息”事件,它捕获使用send()发送的所有消息。试试看。你能举个例子,把客户端代码从“emit”改为“send”,同时保持不同的事件类型吗?
function foo(data) {
    console.log(data);
}
socket.on('event1', foo);
socket.on('event2', foo);