2015-06-25 2 views
0

У меня был конкретный квест о angularjs с websocket. В настоящее время у меня есть приложение, которое использует websocket для связи с сервером, это все хорошо и dandy - и когда я перемещаюсь по страницам в угловом, websocket сохраняется на всех маршрутах, которые являются аккуратными. К сожалению, проблема в том, что если пользователь обновляет страницу (по какой-то немой причине), веб-узел отключается. Мне было интересно, какой лучший способ справиться с этим. Должен ли я просто получать предупреждение, когда пользователь пытается обновить, могу ли я как-то обнаружить, что веб-узел закрыт, когда страница обновлена ​​и запустит новую? Мне просто интересно, какая лучшая практика для чего-то подобного. Websocket с AngularJS/Asp.net

+1

Соединение закончится, вы ничего не сможете с этим поделать. Но почему бы просто не перезапустить его? – mason

ответ

1

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

Вы можете использовать javascript:onbeforeunload, чтобы предупредить пользователя о том, что если он обновится или уйдет, он потеряет соединение. Но ваши пользователи будут ненавидеть вас за это, это очень раздражает.

Учтите, что пользователь может открыть несколько вкладок.

Запуск нового соединения - лучший способ. Просто убедитесь, что пользователь может каким-то образом восстановить свой контекст. Если для каждой вкладки есть другой контекст, вам придется поместить параметр connectionID в URL-адрес, чтобы сохранить его через обновления, и если контекст относится к сеансу пользователя, тогда будет использоваться файл cookie с идентификатором сеанса.

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