【问题标题】:How do you stop listening to a socket.io channel?如何停止收听 socket.io 频道?
【发布时间】:2013-10-13 14:10:49
【问题描述】:

在 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>

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

【问题讨论】:

标签: socket.io


【解决方案1】:

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

【讨论】:

  • 谢谢,我是从 Gaurav 发布的帖子中得到的,但他从未将其作为答案。
【解决方案2】:

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 Client Documentation“套接字实际上继承了Emitter类的每个方法,如hasListenersonceoff(删除事件监听器)。”

Emitter documentation:

  • 传递 eventfn 以删除侦听器。
  • 传递 event 以删除该事件的所有侦听器。
  • 不传递任何内容以删除所有事件的所有侦听器。

【讨论】:

  • Android 也是如此。 :)
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-04
    • 2017-11-27
    • 2019-01-24
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 2017-05-11
    相关资源
    最近更新 更多