0
所以基本上,如果我使用websockets說出一個聊天應用程序,我希望能夠向服務器發送一條消息,告知我正在斷開連接。我嘗試綁定到onbeforeunload,但似乎只能顯示一條消息。如何在離開頁面之前向websocket發送斷開連接消息
有沒有更好的策略呢?如果沒有,似乎我必須從服務器端做一些ping /超時策略。
謝謝。
所以基本上,如果我使用websockets說出一個聊天應用程序,我希望能夠向服務器發送一條消息,告知我正在斷開連接。我嘗試綁定到onbeforeunload,但似乎只能顯示一條消息。如何在離開頁面之前向websocket發送斷開連接消息
有沒有更好的策略呢?如果沒有,似乎我必須從服務器端做一些ping /超時策略。
謝謝。
WebSockets在TCP之上實現,在TCP世界中不同的連接丟失 - 是預期的場景。
在網絡安全方面 - 您的服務器端不應該依賴客戶的「善意」,並且應該始終獨立,並期望更多的斷開連接。考慮到這一點,你必須預料到會出現意外丟失的連接(GPRS/EDGE/3G/4G連接不良或者在網橋/地線下,wifi掉線,以太網拔出,ISP問題,服務器網絡問題等等) 。事實上,沒有「再見」的連接斷開連接將會導致最常見的連接斷開,因此必須考慮到這一點才能實現服務器端邏輯。
斷開的連接總是會發生;國際海事組織,你會*總是*需要某種形式的ping /超時策略。內置ping不適用於所有瀏覽器,所以我們通過週期性地從服務器向客戶端發送一條小消息*,然後檢查我們是否立即從客戶端收到迴應。 –
你的服務器應該自動發現連接已經被關閉,然後你只需要在客戶端代碼中使用onClose事件。 –