Ошибка SignalR: Нечистое отключение от веб-сокета: [причина не указана] - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть AngularJS SPA (одностраничное приложение), и я использую в нем SignalR для push-уведомлений. Я использую оболочку angular-signalr-hub для моего концентратора SignalR. Проблема в том, что SignalR отключается снова и снова почти каждую минуту. Вот как выглядит консольный журнал:

enter image description here

Часть соответствующего кода в файле JavaScript, в который выдается ошибка:

var hub = new Hub("reportHub", {
        listeners: {
            'newConnection': function () {
            },
            'broadcastReportProgress': function (reportProgress) {
                Reports.add(reportProgress[0].clientName, reportProgress[0].folderPath, reportProgress[0].reportName, reportProgress[0].status, reportProgress[0].userName);
                $rootScope.$apply();
            },
            'broadcastUserGenerating': function(reportProgress) {
                Reports.addActiveUser(reportProgress.clientName, reportProgress.status, reportProgress.userName);
                $rootScope.$apply();
            }
        },
        methods: ['send'],
        errorHandler: function(error) {
            console.error(error);
        },
        stateChanged: function (state) {
            var stateNames = { 0: 'connecting', 1: 'connected', 2: 'reconnecting', 4: 'disconnected' };

            if (stateNames[state.newState] === 'connected') {
                connected = true;
            }
            else if (stateNames[state.newState] === 'disconnected') {
                if (hub.connection.lastError) {
                    console.log("Reconnecting SignalR hub after error");

                    hub.connection.start();
                    connected = true;
                }
            }
        },
        logging: true,

Строка 48 выглядит следующим образом:

console.error(error);

Это проблема, потому что у меня также есть система обмена сообщениями RabbitMQ в моем веб-API, которая подключается к концентратору SignalR и отправляет в него сообщения, иногда десяткисообщений в минуту, поэтому, если он пытается отправить сообщение в концентратор SignalR, пока он отключен, мое приложение выдает эту ошибку:

System.InvalidOperationException: данные не могут быть отправлены, потому что соединение WebSocket переподключается.

Есть идеи, в чем здесь проблема?

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