веб-сокет никогда не закрывается, передача нескольких данных

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

Почему бы не избежать постоянного открытия/закрытия? Как насчет того, когда страница загружается, веб-сокеты создаются и открываются, и они никогда не закрываются, поэтому я использую одни и те же веб-сокеты для отправки и получения текста, массивов, ссылок, поисковых запросов и т. д. Я даже думаю о передаче файлов, таких как изображения и/или видео. через веб-сокеты.

Могу ли я это сделать или мне нужно закрыть соединение WS после того, как я закончу? Поднимет ли никогда не закрывающийся WS проблему безопасности? Кроме того, я не знаю, действительно ли WS закроется, когда пользователь покинет страницу. Если это не так, я думаю, это еще одна проблема безопасности.

Как передать файлы через WS? не представляю как это сделать

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


person slevin    schedule 21.08.2015    source источник


Ответы (1)


Веб-сокеты должны оставаться открытыми в течение всего срока службы веб-страницы или SPA... это вполне ожидаемое нормальное поведение.

Сервер может закрыть веб-сокет в любое время, и это тоже нормальное поведение — просто снова откройте веб-сокет.

Обычно серверы закрывают веб-сокет только в том случае, если веб-сокет некоторое время простаивал (например, Heroku установил ограничение времени ожидания на 50 секунд) или по соображениям трафика и параллелизма. В противном случае соединение через веб-сокет может оставаться открытым все время.

Например, платформа Plezi (Ruby) время от времени автоматически отправляет кадр pong, поэтому соединение останется открытым на неопределенный срок, если браузер не закроет сокет (обычно путем выхода со страницы).

person Myst    schedule 21.08.2015