在发展过程中,我非常能够看到寄来的包装。 这在服务器的配对中是可能的。 然而,在客户结束时,没有记录。 我发现自己是ole。 各地的标识。
Is it possible to override socket.emit and socket.on with console.log(arguments)? If I can override this at the before my socket, it would be really elegant.
有些人建议我推翻Parser。
你们在这方面的两点是什么?
EDIT
我尝试了Kato的建议,并写道:
var _origEmit = socket.emit;
socket.emit = function() {
console.log("SENT", Array.prototype.slice.call(arguments));
_origEmit.call(socket, arguments);
};
This works. However, Not so much with socket.on. My strategy is to wrap each callback with a console.log. If you know python, it s kind of like putting function decorators on the callbacks that console.log the arguments.
(function(socket) {
var _origOn = socket.on;
socket.on = function() {
var args = Array.prototype.slice.call(arguments)
, handlerType = args[0]
, originalCallback = args[1];
var wrappedCallback = function() {
// replace original callback with a function
// wrapped around by console.log
console.log("RECEIVED", Array.prototype.slice.call(arguments));
originalCallback.call(socket, arguments);
}
_origOn.call(socket, [handlerType, wrappedCallback]);
}
任何人都能够指出,为什么key干的铺垫。 是否可行?