将套接字.IO emit和on方法



我试图创建一个自定义版本,适合我的需要,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。

相关内容

  • 没有找到相关文章

最新更新