首页 > 解决方案 > 如果服务器不可用,如何捕获 WebSocketSubject 错误?

问题描述

我在 Angular 8 中有一个运行良好的 WebSocket 服务(通常)。我像这样连接到套接字:

    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()不起作用)

标签: angularwebsocketerror-handlingrxjs

解决方案


推荐阅读