HTML5 Web Sockets behave strangely如果用戶刷新頁面或導航 遠離它。在重新加載頁面期間,Web服務器和瀏覽器之間的套接字連接似乎保持打開狀態,並且在Firefox和Chrome瀏覽器中重新加載頁面時關閉。這意味着它只能在瀏覽器和服務器之間每隔一段時間才能建立一個連接,因爲套接字在瀏覽器關閉時被重新加載。 Firefox中的Firebug控制檯中的錯誤消息是「與ws://.../websocket的連接」在頁面加載時中斷「。顯然,當頁面重新加載時websocket連接仍然打開,這意味着頁面加載,而不是每個打開第二頁加載過程中連接被關閉。日誌文件中讀取例如像這樣(與Websocket-Rails寶石創建)關閉HTML5 Web套接字
==> first page load
[ConnectionManager] Connection opened: #<Connection::fef69428febee72f4830>
[Channel] #<Connection::fef69428febee72f4830> subscribed to channel xyz
==> second page load
[Channel] #<Connection::dfc4b33090b95826e08e> unsubscribed from channel xyz
[ConnectionManager] Connection closed: #<Connection::dfc4b33090b95826e08e>
是否有辦法關閉在onbeforeunload
的Javascript所有打開的插座和連接事件,東西 like(in Coffeescript)..
window.onbeforeunload =() ->
close_all_sockets()