javascript - angular 9 websocket obtener estado de la conexión
Escribí una conexión websocket simple en Angular 9.
este es un ejemplo de código :
import {Injectable} from '@angular/core';
import {webSocket} from 'rxjs/webSocket';
import {delay, retryWhen} from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class WebSocketService {
private host = 'ws://localhost:8080/test';
private isConnected = false;
private ws = webSocket({
url: this.host,
openObserver: {
next: () => this.isConnected = true
},
closeObserver: {
next: () => this.isConnected = false
}
});
constructor() {
this.ws
.pipe(
retryWhen(e => {
delay(400);
return e;
})
).subscribe();
console.log('Connection status: ' + this.isConnected);
}
public sendMessage(msg: string) {
this.ws.next(msg);
}
}
con este código puedo enviar mensajes sin ningún problema.
Quiero comprobar el estado de la conexión pero isConnected siempre devuelve falso.
¿Cómo puedo solucionar este problema?