2016-05-23 135 views
1

我玩JavaScript Ajax和長輪詢。 嘗試爲服務器響應超時查找最佳值。HTTP長輪詢 - 超時最佳實踐

我讀了很多文檔,但無法找到超時的詳細解釋。

有人選擇20秒,等30秒......

我用邏輯就像圖 HTTP Diagram

如何選擇超時更好的價值? 我可以用5分鐘嗎? 這是否正常嗎?

PS:可能的Ajax客戶端的互聯網連接:RJ-45以太網,WIFI,3G,4G,還具有NAT,代理服務器。

我擔心連接可以通過第三方在某些情況下,長超時被丟棄。

回答

2

也許它你的英語掌握這是問題,但(連接打開和關閉之間的時間)的連接它的生命週期,你需要擔心超過了超時更多(時間不活動之後,連接將被終止)。

儘管WebSockets的存在,仍然有很多部署的硬件,這將刪除連接無論活動(有的將尋找活動)在認爲交通HTTP或HTTPS - 有時作爲設計過錯,有時是作爲對sloloris攻擊的本土緩解。您擁有3G和4G客戶端意味着您可能會在5分鐘的使用期限內遇到問題。

不幸的是,沒有什麼神奇的解決方案來知道什麼將普遍工作。關鍵是要知道用戶的分佈範圍。如果他們都在你的局域網上,並直接連接到服務器,那麼你應該能夠使用相對較大的值,但是將持續時間設置爲無限制會顯示應用程序中的任何內存泄漏 - 有時候更好地立即刷新無論如何。

以那裏是基礎設施比你的服務器和客戶端之間的集線器和交換機等的情況下,就需要檢測和重新建立被丟棄的連接,無論時間長短的機制。當你已經工作了如何做到這一點,則:

  1. 掉線只是一個小的性能故障,並沒有對功能的顯著效果

  2. 是微不足道的,然後添加能力記錄丟棄的連接,從而確定最佳的連接時間,以消除(1)

+0

同意,在我的情況下,我可以設置超時60秒描述的小問題,如果connecton下降前60秒,客戶端必須重新連接,這就是所有。感謝您的解釋。 – Dmitry