OnDisconnected метод, не вызываемый в SignalR

#signalr

#signalr

Вопрос:

работа над приложением чата с использованием SignalR. OnDisconnected() вызывается через некоторое время, но не сразу в браузере Chrome, когда пользователь закрывается или выходит из системы. Но в браузере Firefox он вызывается немедленно.

После использования этого кода в JS

  window.onbeforeunload = function (e) {     
               $.connection.hub.stop();
           };
 

теперь он работает в браузере Chrome
, но затем OnDisconnected() вызывается очень поздно, когда пользователь выходит из системы из браузера Firefox

пожалуйста, помогите, не могу найти ни одного работающего, поэтому он работает во всех браузерах

Спасибо

Комментарии:

1. Если вы выполните поиск в Google, вы найдете много результатов (несколько прямо здесь, на SO), в которых указано, что не следует использовать window.onbeforeunload. Добавление прослушивателя событий для ‘beforeunload’, по-видимому, является направлением — developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers /…

2. Я использовал прослушиватель событий, но поведение отличается в обоих браузерах. Поскольку chrome требует времени, а в Mozilla это делается немедленно.

3. Возможно, вы захотите проверить документы на предмет изменения времени ожидания отключения, которое по умолчанию равно 30 секундам. Это то, как долго SignalR ожидает, прежде чем будет вызвано событие отключения. Может случиться так, что Chrome неправильно запускает событие, и отключение не является корректным, а отключается на стороне клиента. Серверная сторона ничего не будет делать в течение 30 секунд. Документы — docs.microsoft.com/en-us/aspnet/signalr/overview /…

4. да, он ожидает 30 секунд, чтобы отключиться.