Spring веб-сокет с sockjs и дизайном на стороне клиента

Я интегрирую весенние веб-сокеты в веб-приложение. И я хочу использовать это для двух вызовов, которые занимают очень много времени в ajax. Насколько я понимаю, я вижу, что существуют разные варианты дизайна, как мне это делать. Я думаю о следующем, не могли бы вы сообщить мне, какой вариант будет лучшим и если да, то почему

1) Откройте соединение сокета, как только пользователь войдет в приложение через SockJS, и используйте это соединение для отправки сообщений и подписки на два вызова, которые я хочу сделать. Один из вопросов, который у меня возник с этим дизайном, заключается в том, что если пользователь просто закроет браузер, останется ли соединение сокета открытым?

2) Открывайте сокетное соединение для каждого вызова и закрывайте его после получения сообщения, но здесь требуется много ресурсов для установления соединения каждый раз.

Я новичок в материалах spring-websocket, SockJS и STOMP, поэтому дайте мне знать, что мое понимание где-то неверно?

заранее спасибо


person Nikhil Das Nomula    schedule 15.12.2015    source источник


Ответы (1)


  1. Когда пользователь закрывает браузер, Web Socket отключается. Вы можете справиться с этим на стороне сервера. Я имею в виду, вы можете уведомить других пользователей или что-то еще.

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

Думаю, этот дизайн вам поможет.

Некоторые полезные ссылки:

Обнаружение подключений и отключений WebSocket весной 4

Официальный вопрос об отключении

ОБНОВЛЕНИЕ (19 марта 2016 г.):

Тут вам поможет параллелизм. Это означает, что каждое новое соединение будет обрабатываться новыми потоками. Таким образом, они могут работать как параллельно. Конечно, количество потоков должно быть ограничено пулом потоков. Итак, такого рода проблемы уже решены и реализованы в Spring Web Socket.

Если вас интересуют фундаментальные теории, вы можете прочитать этот ответ

person Mirjalol Bahodirov    schedule 15.12.2015
comment
Спасибо. Я собираюсь иметь одно открытое соединение с веб-сокетом для пользователя, поскольку веб-сокет будет отключен, когда пользователь закроет браузер. Ссылки были действительно полезны! - person Nikhil Das Nomula; 16.12.2015