刷新后保持 WebSocket 连接处于活动状态

pcC*_*C28 2 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");

};
Run Code Online (Sandbox Code Playgroud)

小智 6

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

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

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