保持与 Socket.io 的连接

and*_*eah 1 websocket socket.io

我正在尝试使用socket.io-client连接星号 websocket

socket = io.connect(url ,{
    transports: ['websocket'],
    secure: true,
    'force new connection' : false,
    'reconnect' : true,
});
Run Code Online (Sandbox Code Playgroud)

它有效,但每次我更改或刷新页面时,websocket 连接都会断开并重新连接(显然)。我的应用程序不是“一页应用程序”。

有没有办法保持连接活跃?

jfr*_*d00 5

有没有办法保持连接活跃?

不。如果您允许页面在浏览器中更改,则不会。

当浏览器改变页面时,它会关闭所有与旧页面关联的资源(包括 webSockets),然后它会初始化并打开新页面。你不能改变这一点。

保持 webSocket 打开的唯一方法是将它放在一个不会改变的窗口中。这将需要转换为单页应用程序(不会更改页面)或将 webSocket 放在不会更改的框架或窗口中。您可以让用户安装浏览器扩展(可以保持持久连接),但我认为这不是您要问的。

否则,您只需要管理服务器上的内容即可处理站点内页面更改将关闭旧 webSocket 并打开一个新 webSocket 的事实。