javascript - angular 9 websocket získat stav připojení
Napsal jsem jednoduché websocketové připojení na Angular 9.
toto je ukázkový kód :
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);
}
}
s tímto kódem mohu posílat zprávy bez jakéhokoli problému.
Chci zkontrolovat stav připojení, ale isConnected vždy vrací false!
Jak mohu tento problém opravit?