Как отловить ошибку WebSocketSubject, если сервер недоступен? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть служба WebSocket в Angular 8, которая работает нормально (в общем). Я подключаюсь к сокету следующим образом:

    public connect(): void {
        this.socket$ = new WebSocketSubject({
                        url: CONTENT_SERVER_URL,
                       });

        this.socket$
            .subscribe(
                (message) => {
                    this.serverMessages.push(message);
                },
                (error) => {    
                    this.status = Status.ERROR;
                },
                () => {
                    this.status = Status.CLOSED;
                }
            );
    }

и отправляю сообщения следующим образом:

    public send(message: Message): void {
        if (this.status != Status.CONNECTED)
            this.connect();

        this.socket$.next(message);
    }

Проблема в том, что сервер не всегда подключен к сети, и затем я получаю это сообщениев консоли:

WebSocketSubject.js:91 WebSocket connection to 'wss://MYDNS.XXX:7031/' failed: Error during WebSocket handshake: Unexpected response code: 502

Как мне перехватить это сообщение, чтобы оно не выводилось на консоль? (try() catch() не работает)

...