我试图创建一个适合我需要的自定义版本的socket.io的emit()和on()方法。 我能够像这样使用emit()方法:
socket._emit = function () {
console.log('socket._emit ', arguments);
event = arguments[0];
data ={
'username': user.username,
'token': user.token,
'data': arguments[1]
};
socket.emit.apply(this, [event, JSON.stringify(data)]);
};
我对on()方法有问题,因为我无法获取回调函数的数据,所以现在我的自定义_on()没有做任何特殊的事情,只是调用默认值上()。
socket._on = function () {
socket.on.apply(this, arguments);
};
我的目标是记录on()方法回调收到的每个数据。我试过这样的事情,但没有工作。
socket._on = function () {
callback = function(){
console.log('socket._on ', //arguments from arguments[1]()//);
arguments[1]();
}
socket.on.apply(this, [arguments[0], callback()]);
};
有关如何改进测试的想法吗?
谢谢,亚历山德罗
答案 0 :(得分:0)
我最终得到了这个解决方案:
var _onevent = socket.onevent;
socket.onevent = function (packet) {
console.log('[S] On: ', packet);
_onevent.call(socket, packet);
};
您需要调查一下packet
对象,以便了解对您而言重要的事情。
适用于socket.io 1.7.2。