2013-11-20 2 views
2

После того, как мы обновили наш проект до SignalR v2, поведение ondisconnect кажется измененным. При переходе на другой сайт, например. google.com, ondisconnect вызывается немедленно (то же самое происходит при закрытии вкладки, в которой он работает). Но когда мы переходим на другую страницу в нашем веб-проекте, ondisconnect вызывается гораздо позже, предположительно, после истечения тайм-аута. Мы проверили это поведение, создав новый проект MVC4 и пример chatHub, чтобы исключить ошибку пользователя от нашего имени (протестировано с помощью google chrome). Наше приложение сильно зависит от включения ondisconnect, когда пользователи перемещаются в сторону от страницы (для очистки пользователей, т. Е. Для выхода из чата).Ondisconnect не вызывается сразу при переходе на другую страницу внутри проекта (но при переходе на другой сайт или закрытие вкладки)

Не могли бы вы рассказать мне, если это по дизайну и какие параметры мы должны сделать ondisconnect fire немедленно, когда пользователь перейдет на другую страницу (так же, как закрыть вкладку)? Мы не изменили настройки тайм-аута по умолчанию/keepalive. Добавленный нам не хотелось бы полагаться на такой метод, как beforeunload, чтобы сделать эту работу так, как она была ранее.

Большое спасибо заранее!

+0

+1, мы сталкиваемся с той же проблемой. –

ответ

3

Я разместил это в команде SignalR на github, Halter73 ответил временным обходным решением. Дополнительную информацию см. В разделе https://github.com/SignalR/SignalR/issues/2719.

Добавление:

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

Чтобы наш проект исправили проблему.

Смежные вопросы