как закрыть предыдущее соединение с socket.io и начать новое соединение - PullRequest
0 голосов
/ 02 мая 2019

У меня есть соединение socket.io между угловым клиентом и сервером узлов.

service.ts file


  connect_id1(id) : Observable<string>{
    this.socket = io('http://server1 ip:7496/milo/' + id, {transports : ['websocket']})
    console.log(this.socket)
    return this.observable = new Observable((observer) => {
      this.socket.on('data',(res : any) => observer.next(res));
    })
  }

  connect_id2(id) : Observable<string>{
    this.socket = io('http://server2 ip:7496/milo/' + id, {transports : ['websocket']})
    console.log(this.socket)
    return this.observable = new Observable((observer) => {
      this.socket.on('data',(res : any) => observer.next(res));
    })
  }

  connect_id3(id) : Observable<string>{
    this.socket = io('http://server3 ip:7496/milo/' + id, {transports : ['websocket']})
    console.log(this.socket)
    return this.observable = new Observable((observer) => {
      this.socket.on('data',(res : any) => observer.next(res));
    })
  }
component.ts file


    realTime(id) {
      this.webSocket.connect_id1(id).subscribe ((data:any) => console.log(data))
      this.webSocket.connect_id2(id).subscribe (data => console.log(data))
      this.webSocket.connect_id3(id).subscribe (data => console.log(data))

    }
component.html file

<div>
   <button (click)="realTime(selectedDevice)">Get Data for ID</button>   </div>

, поэтому, основываясь на выбранном устройстве, я хочу получить данные для этого устройства.

У меня есть три сервера на сервере, и данные могут поступать с любого из трех серверов. Итак, я подключаюсь ко всем трем серверам

Я могу изменить устройство, для которого мне нужны данные, через html, поэтому, когда я начинаю получать данные для устройства, а затем делаю запрос данных другого устройства, предыдущее соединение не закрывается, я получаю данные для оба устройства. Итак, как закрыть соединение предыдущего устройства и получить данные только для нового устройства. Я новичок в этом, поэтому то, что я делаю, может быть не совсем правильным, открытым для предложений

...