Я пытаюсь переопределить метод WebSocket.send()
. Моя цель - путать отправленные данные, чтобы проверить надежность реализации сервера.Как переопределить метод отправки() WebSocket
Я принимая этот подход:
// 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.
Кто-нибудь, если можно переопределить встроенный метод отправки websocket(), или что еще мне не хватает?
ТИА
Это похоже на работу. Можете ли вы объяснить, почему? Я предполагаю, что когда вы вызываете 'this.send()' интерпретатор будет искать метод в прототипе в любом случае. Благодарю. – NoUserFound
'WebSocket.prototype.send' не будет работать, потому что этот вызов не вызывает метод' send' в области сокета, а скорее в области его прототипа (это не то же самое, что вы, вероятно, можете сказать из сообщение об ошибке). Вместо этого, если вы попробуете 'WebSocket.prototype.oldSend.apply (это, аргументы)', который также передаст правильную область применения метода, он должен работать так, как вы ожидаете. –