首页 文章

socket.io angular2 observer多次触发多次状态(路由)多次(多次)

提问于
浏览
0

我正在连接具有多个状态(路由)的Angular2应用程序和在后端运行的节点服务器(Socket) . 当我访问其他某个状态并回到之前的状态时,套接字代码写在使用fromEvent创建的角度应用程序的服务文件中 . subscribe()在多个组件中调用的服务,在ngoninit(){}中调用 . 我在路径上移动的频率会在事件触发时获取组件视图和事件,所以多次(多次)调用订阅的服务(多次show console.log(“get message”)),这会影响性能 .

`get-messages() {
let observable = new Observable(observer => {
  this.socket = io(this.url);
  this.socket.on('message', (data) => {
    observer.next(data);    
  });
  return () => {
    this.socket.disconnect();
  };  
})     
return observable;

}

1 回答

  • 0

    您需要优雅地结束订阅,请查看此文章 .

    Angular/RxJs When should I unsubscribe from Subscription

    否则,我如何使用socket.io路由是我将socket.io订阅移动到全局服务 . 然后在组件中注入全局服务,该服务具有一个统一的socket.io订阅 .

相关问题