我想知道是否可能有一个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源码,我不想这样做。
答案 0 :(得分:2)
node.js使用的EventEmitter实现不支持任何类型的通配符,所以基本上你运气不好。你可以修补socket.emit
,但这比任何事情都要糟糕:
var origEmit = socket.emit;
socket.emit = function(ev) {
console.log(ev);
origEmit.apply(this, arguments);
});