Отменить регистрацию всех событий в WebSocket

#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:

Вам придется удалить прослушиватели событий вручную. Они остаются активными на элементе до тех пор, пока они не будут уничтожены (или удалены браузером).