2017-10-17 119 views
1

我正在使用SSE(EventSource API)將一些事件廣播給客戶端的網站上。在Android版Chrome瀏覽器的移動版本上測試我的網站時,我注意到當頻道空閒大約五分鐘時,連接丟失。移動電話上的服務器發送事件(SSE)連接丟失

我使用了幾款安卓設備,使用不同的運營商和不同的瀏覽器,結果是一樣的,無論屏幕是開還是關。 Desktop Chrome似乎可以讓連接長時間保持活躍狀態​​。

找不到任何有關這方面的信息,當試圖調試問題時,我得到的只是從發送最後一個事件約3分半鐘後的電話IP地址收到的TCP「FIN」數據包。

EventSource的onerror事件沒有被解僱,所以我無法知道何時斷開連接以啓動新的連接。

有什麼辦法可以避免這個問題,或者我應該每隔30秒發一些假消息來防止連接空閒?

在此先感謝

回答

0

您可以設置retry領域樹立reconnection timeEventSource實例

  • 如果字段名稱是 「重試」

    • 如果該字段值僅由ASCII數字組成,然後將字段值解釋爲基數爲10的整數並進行設置事件流的 與該整數的重新連接時間。否則,請忽略該字段。
+0

謝謝您的回答,客人!不幸的是,發送「重試」沒有任何區別:它就像客戶端斷開連接並且無法再次建立連接。 – user683887

+0

您是否嘗試過在少於五分鐘的時間內發送消息? – guest271314

+0

是的,如果我正在發送消息,例如每兩分鐘一次,連接就不會丟失。所以我可以每分鐘發送一次「保持活着」的消息,但我想知道是否有更好的方法來做到這一點。 – user683887

相關問題