Как правильно восстановить сигнал R после отключения - PullRequest
0 голосов
/ 08 декабря 2018

На моем сайте angular6 с серверным приложением ASP.NET я хочу, чтобы клиент singnalR всегда оставался подключенным к Hub (Server).С этой целью началось соединение при отключенном событии с приведенной ниже привязкой кода.

    this.connection.start().done((data: any) => {
        console.log('Now connected');
        this.connectionId = this.connection.id;
        this.connectionEstablished.emit(true);
        this.connectionExists = true;
    }).fail((error: any) => {
        this.connectionEstablished.emit(false);
    });

    this.connection.reconnecting(() => {
        this.tryingToReconnect = true;
    });

    this.connection.reconnected(() => {
        this.tryingToReconnect = false;
    });
    this.connection.error((error: any) => {
        this.initialize();
    });
    this.connection.disconnected(() => {
        if (this.tryingToReconnect) {
            setTimeout(() => {
                this.initialize();
            }, 5000);

        }
    });;   

Из-за этого кода выше, signalr создает проблему, такую ​​как , происходит сбой браузера клиента и утечки памяти ниже.например,

  1. Если в течение нескольких часов в клиентском интернет-соединении возникает проблема, то в это время singalr постоянно пытается установить соединение с концентратором.Из-за проблем с интернетом бесконечно регистрирует ошибку соединения в консоли браузера до успешного соединения с концентратором

  2. Если я закрою сервер, то в этот раз также singalR бесконечно регистрировать ошибку соединения в консоли браузера до успешного соединения с концентратором

    SignalRErroronConsole

Как устранить неполадки дляСигнализатор всегда остается на связи с концентратором?

1 Ответ

0 голосов
/ 09 декабря 2018

Я бы создал инкрементное значение, и каждый тайм-аут повторного подключения будет увеличиваться, и показ опции повторной попытки сейчас, так же, как это делает Gmail, является хорошей практикой и решит обе проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...