如何在重新加载页面时暂停侦听ng Websocket



我使用的是angular ui,我创建了一个指令,它的控制器监听websockets服务器并检索数据,实际上它工作得很好,但当离开加载该指令的页面时套接字客户端仍在监听,我的问题是如何暂停侦听,直到用户打开加载该指令的页面然后恢复侦听?

我使用这个模块:https://github.com/wilk/ng-websocket

什么是暂停听力和恢复它的最好方法?停止倾听并重新开始是否有效?这种方法的优点和缺点是什么?

编辑:添加一些代码来澄清
function startWS(host, port, token) {
      ws = $websocket.$new({
          url: 'ws://' + host + ':' + port + '?token=' + token,
          reconnect: true,
          reconnectInterval: 500
      });
      ws.$on('$open', function () {
          console.log('Web Socket Opened');
      });
      ws.$on('$close', function () {
          console.log('Web Socket Closed');
      });
      ws.$on('$message', function (action) {
          console.log(action);
      });
  }

这个函数是用来连接到websocket的函数,我需要一些其他的函数来暂停这个监听和其他的恢复。

我认为这取决于控制器/指令被调用的频率。你可以在指令作用域中监视$destroy事件。然后您可以关闭连接。但这可能会导致许多重新连接。我可能会在app init上设置连接并依赖于那个conn。你可以设置一个额外的布尔值来定义是否应该忽略来自websocket服务器的消息。这个布尔值必须在你的应用程序中全局可用。我希望我理解你的问题。

最新更新