2017-02-23 133 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