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

时间:2015-10-11 13:09:04

标签: javascript angularjs 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的函数,我需要一些其他的函数来暂停这个监听和其他恢复。

1 个答案:

答案 0 :(得分:0)

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