javascript - 刷新后保持 WebSocket 连接处于事件状态

标签 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");

};

最佳答案

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

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

另一种方法是使用框架。您可以将 Websocket 放入(隐藏)框架中,然后使用另一个框架进行导航。这样套接字就可以保持事件状态,并且您可以导航页面的其余部分,而无需重新加载 Websocket。

关于javascript - 刷新后保持 WebSocket 连接处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50782241/

相关文章:

javascript - WebSocket 客户端无法通过企业代理连接到云服务器,除了网络浏览器! (超时)

javascript - 带有 Phonegap 的 Android 4.4 上的 Websocket

python - 使用 WebRTC 和 Python 服务器进行人脸情绪分析

spring - 如何在 Spring 中从 RabbitMQ 正确获取所有队列消息?

java - Spring 网络套接字 : message not published

javascript - jquery.steps 和验证不起作用 - 表单内容不可见(不可见)

javascript - 如何使 Material ui 选项卡只对特定的 url 有效

javascript - 将字符串分成两部分,长度几乎相同

javascript - 在 Symfony/Twig 响应中缩小/丑化嵌入的 JavaScript

spring-security - SockJS/STOMP Web Socket 的 Spring Security "Token-based Authentication"