天天看點

WebSocket始終保持連接配接的辦法

在項目中,背景為了其實把處理結果主動推送個前端,是以使用了WebSocket。

但是問題來了,頁面每跳轉一次,socket都要重新關閉建立連接配接。這個資源消耗是很大的,而且線上環境随着并發量的增加會報錯是以影響性能。

那麼如何保持socket的長連接配接了,用iframe就行了。

如下新增一個模闆頁面,把原來的首頁位址給他,其他都不變。

<iframe id="aframe" name="aframe" src="${contextPath}/project/shop/index" frameborder="0"  marginheight="0" marginwidth="0" width="100%" height="100%"></iframe>      

這樣頁面每次跳轉都有一個父級頁面,把 socket 的 js 檔案在這個頁面引入就可以了。同時子頁面的跳轉位址在浏覽器位址欄不顯示。

當然你得考慮使用iframe帶來的樣式問題,反向代理預設的60S連接配接逾時問題。否則60S内沒有消息推送,這個連接配接照樣會斷開。