У меня есть соединение 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, поэтому, когда я начинаю получать данные для устройства, а затем делаю запрос данных другого устройства, предыдущее соединение не закрывается, я получаю данные для оба устройства. Итак, как закрыть соединение предыдущего устройства и получить данные только для нового устройства. Я новичок в этом, поэтому то, что я делаю, может быть не совсем правильным, открытым для предложений