在浏览器中关闭WebSocket连接时是否必须手动删除事件侦听器?

时间:2019-11-23 12:58:13

标签: javascript websocket event-handling

我正在使用WebSocket API提供的本机方法。

我想知道是否需要删除事件侦听器,因为link或Websocket的MDN示例code中都没有提到removeEventListener方法。

我正在使用这样的事件方法:

const ws = new WebSocket(url);
ws.onopen = () => {}

此外,我想知道是否要使用ws.close()方法关闭连接时是否需要删除事件侦听器,我想它在清理时仍会删除侦听器。

2 个答案:

答案 0 :(得分:1)

“在探究了socket.io源之后,当客户端断开连接时,套接字对象(即EventEmitter)将被删除,因此无需手动调用removeAllListener”。

从此处复制:do I have to remove event listener when socket is disconnected?

答案 1 :(得分:0)

您必须手动删除事件侦听器。 事实是,添加的侦听器将在元素上保持活动状态,直到它们被销毁或在现代浏览器中被手动删除。 您可以尝试测试是否在 Web 套接字连接关闭后触发事件。