socket.io clientide代码可以使用此
var socket = io('http://localhost:8888');
socket.on('news', function (data) {
socket.emit('my other event', { my: 'data' });
});
但我想拦截socket.io发出的服务器上的所有数据,不仅是新闻,还要处理数据。那可能吗。
答案 0 :(得分:1)
你想要的是注册" socket"发出的所有事件。 这个问题被广泛讨论here。它在socket.io代码中没有用,但评论者提出了一些方法。
您最好的选择可能是this path:
(function() {
var emit = socket.emit;
socket.emit = function() {
console.log('***','emit', Array.prototype.slice.call(arguments));
emit.apply(socket, arguments);
};
var $emit = socket.$emit;
socket.$emit = function() {
console.log('***','on',Array.prototype.slice.call(arguments));
$emit.apply(socket, arguments);
};
})();
请查看链接主题以获取更多信息。
您可以在其他一些方法中找到其他信息here。