我试图创建一个自定义版本,适合我的需要,emit()和on()方法的socket.io。我可以为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()不做任何特殊的事情,只是调用默认的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()]);
};
有什么办法改进我的考试吗?
谢谢,亚历山德罗
我最终得到了这样的解决方案:
var _onevent = socket.onevent;
socket.onevent = function (packet) {
console.log('[S] On: ', packet);
_onevent.call(socket, packet);
};
你需要调查一下packet
对象,看看什么对你重要。
为socket工作。io是1.7.2。