我尝试停止在socket.io中监听。 例如,就我而言,我是从这样的套接字获取数据的。
Socket.on('event', function(data) {}}
如何停止在socket.io中监听? 谢谢
答案 0 :(得分:5)
要取消订阅事件的所有听众
socket.off('event-name');
要取消订阅某个收听者
socket.off('event-name', listener);
或者您也可以使用以下内容,
socket.removeListener(eventName, listener)
socket.removeAllListeners([eventName])
参考:https://socket.io/docs/server-api/#socket-removeListener-eventName-listener
答案 1 :(得分:4)
socket.close()
或socket.disconnect()
返回套接字
手动断开套接字。
socket.off('event', function(){})
解除绑定指定的事件处理程序(与.on()相反)。
如果您决定使用此方法,请当心! socket.off()不会阻止此客户端套接字接收任何服务器发送的消息,它只是阻止触发指定的事件处理程序。
实际上,套接字实例继承了Emitter
类(https://github.com/component/emitter)中的每个方法,因此您可以使用.hasListeners()
,.once()
并且已经说过.off()
(删除特定的事件监听器。
在这里您可以找到有关这些方法和其他Socket.io方法的不错的文档:https://sailsjs.com/documentation/reference/web-sockets/socket-client/io-socket-on
答案 2 :(得分:2)
还可以使用“关闭”功能。
socket.off('news'); //停止收听“新闻”事件
socket.off('news',myFunction); //如果有多个 相同事件的侦听器socket.off(); //停止收听所有事件