首页 文章

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

提问于
浏览
2

我正在使用 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

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

相关问题