#javascript #node.js #websocket
Вопрос:
Как можно перестать прослушивать все события в websocket.
const WebSocketClient = require('ws');
const ws = new WebSocketClient('wss://example.com');
ws.on('message', doFunction());
function doFunction() {
if (condition) {
//do some stuff
//stop listening to event without closing the websocket connection
}
}
ws.close() или ws.terminate() закроют соединение, я не хочу закрывать соединение.
Ответ №1:
Так как ваш WebSocketClient
телефон расширяется EventEmitter
, вы, безусловно, можете позвонить ws.removeAllListeners()
.
Документы EventEmitter.removeAllListeners и документы ws#WebSocket в любом случае должны помочь.
Ответ №2:
Вам придется удалить прослушиватели событий вручную. Они остаются активными на элементе до тех пор, пока они не будут уничтожены (или удалены браузером).