Así conecto el cliente al servidor con socket io.
export class OverviewService { socket:any; readonly uri:string='http://localhost:4000'; constructor(private http: HttpClient) { this.socket = io(this.uri); }y esto cuando llamo
getOnPeak(){ this.socket.emit('on_peak/today'); return new Observable((subscriber)=>{ this.socket.on('on_peak/today',(data:any)=>{ subscriber.next(data.onPeak.toFixed(2)) console.log('onPeak:'+data.onPeak.toFixed(2)); }) }) }resumen.ts
this.getOnPeekSub=this.overviewService.getOnPeak().subscribe(onPeak => { this.onPeak = onPeak; })en ngOnDestroy traté de usar removeAllListeners(), removeListeners() y off() pero no funciona.
getOnPeak(){ this.socket.emit('on_peak/today'); return new Observable((subscriber)=>{ this.socket.on('on_peak/today',(data:any)=>{ subscriber.next(data.onPeak.toFixed(2)) console.log('onPeak:'+data.onPeak.toFixed(2)); }) return function unsubscribe() { this.socket.disconnect() }; }) }Cuando te des de baja del Observalbe, el enchufe se cerrará. Lea más aquí https://rxjs.dev/guide/observable (Disposición de ejecuciones observables)