Обновленное решение для socket.io-client 1.3.7
var onevent = socket.onevent;
socket.onevent = function (packet) {
var args = packet.data || [];
onevent.call (this, packet); // original call
packet.data = ["*"].concat(args);
onevent.call(this, packet); // additional call to catch-all
};
Используйте следующее:
socket.on("*",function(event,data) {
console.log(event);
console.log(data);
});
Ни один из ответов не работал для меня, хотя близ Матиаса Хопфа и Мароша Пиксела, это моя скорректированная версия.
ПРИМЕЧАНИЕ. Это только ловит пользовательские события, а не var io = require ('socket.io') (); var middleware = require ('socketio-wildcard') (); io.use (промежуточный); io.on ('connection', function (socket) {socket.on ('*', function () {/ * a € | * /});}); io.listen (8000); / var socket = io.connect (); var globalEvent = "*"; socket. $ emit = function (name) {if (! this. $ events) возвращает false; for (var i = 0; i <2; ++ i) {if (i == 0 && name == globalEvent) continue; var args = Array.prototype.slice.call (аргументы, 1-i); var handler = this. $ events [i == 0? name: globalEvent]; if (! handler) handler = []; if ('function' == typeof handler) handler.apply (this, args); else if (io.util.isArray (обработчик)) {var listeners = handler.slice (); для (var i = 0, l = listeners.length; i <l; i ++) слушатели [i] .apply (это, args); } else return false; } return true; }; socket.on (globalEvent, function (event) {var args = Array.prototype.slice.call (аргументы, 1); console.log ("Глобальное событие =" + событие + "; Аргументы =" + JSON.stringify (args) );}); и т.д