2017-02-23 101 views
1

我试图以星号的WebSocket连接,使用socket.io-client保持连接与Socket.io

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

它的工作原理,但每次更改或刷新页面,WebSocket连接断开并重新连接(obviusly)。我的应用程序不是“单页应用程序”。

有用于保持连接的方式活着吗?

回答

1

有用于保持连接的方式活着吗?

不,不是,如果你允许网页浏览器改变。

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

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

否则,你必须管理你的服务器上的事情,以处理你的网站内的页面更改将关闭旧的webSocket并打开一个新的事实。

+0

@ icy2k - 这个回答你的问题?如果这回答了您的问题,那么您可以通过点击答案左侧的绿色复选标记来向社区表明。这也将为您在堆栈溢出时遵循适当的过程赢得一些声望点。 – jfriend00