Можете ли вы проверить, подключен ли концентратор SignalR или нет?

#javascript #asp.net #signalr

Вопрос:

У меня есть удаленный концентратор, работающий в службе Windows, подключенной к серверу TCP. Я хочу иметь возможность предупреждать пользователя, подключен ли концентратор к сети или нет. Я использую следующий код javascript

Веб-страница входа в систему:

 <script src="Scripts/SignalR.js"></script>
<script src="http://localhost:1200/signalr/hubs"></script>
 

SignalR.js:

  try {
    $.connection.hub.url = 'http://localhost:1200/signalr';
}
catch (ex) {
    alert(ex);
} 

srv = $.connection.tcpHub;

$.connection.hub.start().done(function () {
    if (getCookie('UserID') != null) {
        Connect(getCookie('UserID'), getCookie('UniqueKey'));
        gotoState(availableState.READY);
    }
}).fail(function (reason) {
    alert("There was an issue connecting to Hub");
    console.log(reason);
});
 

Ни одно из предупреждений не выводится, потому что веб-страница прерывается по тегу http-скрипта, так как концентратор недоступен.

Есть ли какой-либо способ предупредить конечного пользователя о том, что концентратор не подключен к сети?

Ответ №1:

Я смог ответить на свой собственный вопрос, изменив

 <script src="http://localhost:1200/signalr/hubs"></script>
 

Для

 <script src="http://localhost:1200/signalr/hubs" onerror="error();"></script>
 

и добавление функции ошибки для отображения соответствующего предупреждения о том, что концентратор не запущен.