0

有没有办法在发出消息之前全局自动修改消息?类似于 jQuery ajax 的beforeSend.

现在,我正在为每个负载手动添加时间戳,emit自动完成该操作更不容易出错。

谢谢!

4

1 回答 1

0

您可以覆盖该.emit()方法(保存原始方法以便您可以调用它),或者如果您控制所有.emit()调用.emit().

要修补原始.emit(),您可以这样做:

(function() {
    var origEmit = Socket.prototype.emit;
    Socket.prototype.emit = function(msg, data) {
        if (typeof data === "object") {
            data.timeStamp = Date.now();
        }
        return origEmit.apply(this, arguments);
    }
})();

要创建所有代码都可以使用的自己的 emit 方法,您可以这样做:

 Socket.prototype.emitT = function(msg, data) {
    if (typeof data === "object") {
        data.timeStamp = Date.now();
    }
    return this.emit.apply(this, arguments);
 }
于 2014-10-07T05:52:28.887 回答