我在有角度的客户端和节点服务器之间建立了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更改要为其获取数据的设备,因此当我开始获取设备的数据,然后请求其他设备的数据时,以前的连接不会关闭,我正在获取数据两个设备。因此,如何关闭先前设备的连接并仅获取新设备的数据。我对此很陌生,所以我做的方式可能并不完全正确,可以接受建议