刷新后保持WebSocket连接活动

时间:2018-06-10 09:22:02

标签: javascript websocket spring-websocket

我有一个实时应用程序,它在java spring服务器和浏览器之间使用了WebSockets。是否有一种方法可以在页面刷新后保持Websocket连接的活动状态?

这是我的javascript代码:

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

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

};

1 个答案:

答案 0 :(得分:1)

不,你不能。问题是,websockets所处的上下文仅限于您正在显示的页面。刷新页面或导航到另一个页面后,上下文(以及websocket)将被销毁。

防止销毁的解决方案是创建某种单页面应用程序。新内容将加载到现有页面中,并且不会重新加载websocket。

另一种方法是使用框架。您可以将Websocket放在(隐藏)框架中,然后使用另一个框架进行导航。通过这种方式,套接字可以保持活动状态,您可以在不重新加载websocket的情况下浏览页面的其余部分。