如何重写WebSocket send()方法

How to override WebSocket send() method

本文关键字:WebSocket send 方法 重写 何重写      更新时间:2023-09-26

我试图覆盖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);
};

,不管怎样,它应该可以达到这个目的,而不会扰乱原型。