如何在nodejs中监听所有动作

时间:2015-02-20 13:14:55

标签: node.js sockets

我想知道是否可能有一个nodejs事件正在侦听nodejs 发送的所有操作而不修改lib源

例如,我有2个动作:

socket.on("login", function() { //do something });
socket.on("getUser", function() { //do something });

但是如果套接字给我发了一个动作,除了"登录"或者" getUser",我想做这样的事情:

socket.on("actionUnknow", function() { socket.disconnect(); });

我在stackoverflow上发现了一些有相同问题的主题,但答案是修改了lib源码,我不想这样做。

1 个答案:

答案 0 :(得分:2)

node.js使用的EventEmitter实现不支持任何类型的通配符,所以基本上你运气不好。你可以修补socket.emit,但这比任何事情都要糟糕:

var origEmit = socket.emit;
socket.emit = function(ev) {
  console.log(ev);
  origEmit.apply(this, arguments);
});