我试图覆盖WebSocket.send()
方法。我的目标是能够模糊发送的数据,以测试服务器实现的健壮性。
我正在采用这种方法:
// OVERRIDE WEBSOCKET SEND METHOD
WebSocket.prototype.oldSend = WebSocket.prototype.send;
WebSocket.prototype.send = function(data) {
console.log("ws: sending data");
WebSocket.prototype.oldSend(data);
};
第一次调用WebSocket.prototype.oldSend(data)
命令时失败,错误如下:发送失败:在未实现WebSocket接口的对象上调用'send'。
任何人,如果有可能覆盖内置的websocket发送方法(),或者我错过了什么?
TIA
如何:
WebSocket.prototype.oldSend = WebSocket.prototype.send;
WebSocket.prototype.send = function(data) {
console.log("ws: sending data");
WebSocket.prototype.oldSend.apply(this, [data]);
};
JSFiddle
据我所知,你不能重写WebSocket.send()实现,因为它在大多数浏览器中是只读的。
你所能做的就是:
var mysend = function(data) {
console.log("ws: sending data");
WebSocket.send(data);
};
,不管怎样,它应该可以达到这个目的,而不会扰乱原型。