Сохранить соединение WebSocket после обновления - PullRequest
0 голосов
/ 10 июня 2018

У меня есть приложение реального времени, которое использует WebSockets между сервером Java Spring и браузером.Есть ли способ сохранить соединение Websocket после обновления страницы?

Это мой код JavaScript:

consumerWebSocket = new WebSocket("wss://" + window.location.host + 
"/myWebSocketConnection");

consumerWebSocket.onopen = function () {
    sendThroughWS(consumerWebSocket, "Send this message from browser to server");

};

1 Ответ

0 голосов
/ 10 июня 2018

Нет, вы не можете.Проблема в том, что контекст, в котором живут веб-сокеты, ограничен отображаемой страницей.Как только вы обновите страницу или перейдете на другую, контекст (и, следовательно, веб-сокет) будет уничтожен.

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

Другой способ - использование фреймов.Вы можете поместить свой Websocket в (скрытый) фрейм и просто перемещаться, используя другой фрейм.Таким образом сокет может остаться в живых, и вы можете перемещаться по остальной части своей страницы без перезагрузки веб-сокета.

...