我使用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的函数,我需要一些其他的函数来暂停这个监听和其他恢复。
答案 0 :(得分:0)
我认为这取决于控制器/指令的调用频率。您可以在指令范围上查看$ destroy事件。然后你可以关闭连接。但这可能导致许多重新连接。我可能会在app init上设置连接并依赖于conn。您可以设置一个额外的布尔值,用于定义是否应忽略来自websocket服务器的消息。此布尔值必须在您的应用程序中全局可用。我希望我明白你的问题。