12

在 socket.io 中,您可以像这样绑定到套接字事件/通道:

<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
   socket.on('news', function (data) {
   console.log(data);
   socket.emit('my other event', { my: 'data' });
 });
</script>

但是你如何停止收听“新闻”事件呢?

4

3 回答 3

27

尝试,socket.removeAllListeners("news");

于 2013-10-10T09:28:29.317 回答
9

off也可以使用该功能。

  • socket.off('news'); // stops listening to the "news" event
  • socket.off('news', myFunction); // useful if you have multiple listeners for the same event
  • socket.off(); // stops listening to all events



来源

根据Socket.io 客户端文档,“套接字实际上继承了 Emitter 类的每个方法,例如hasListeners, onceor off(删除事件监听器)。”

发射器文档

  • 通过eventfn删除一个监听器。
  • 通过event以删除该事件的所有侦听器。
  • 不传递任何内容以删除所有事件的所有侦听器。
于 2019-08-14T18:29:25.687 回答
1

如果您只想删除特定事件,您可以尝试socket.removeListener('you_event');

于 2018-08-12T06:24:27.453 回答