1. 短輪詢
ajax按一定間隔去請求
2. 長輪詢(long Polling)
Long Polling的實現很簡單,可分為四個過程:
發起Polling
發起Polling很簡單,只需向服務器發起請求,此時服務端還未應答,所以客戶端與服務端之間一直處於連接狀態。
數據推送
如果服務器端有相關數據,此時服務端會將數據通過此前建立的通道發回客戶端。
Polling終止
Polling終止情況有三種:
若服務端返回相關數據,此時客戶端收到數據后,關閉請求連接,結束此次Polling過程。
若客戶端等待設定的超時時間后,服務端依然沒有返回數據,此時客戶端需要主動終止此次Polling請求。
若客戶端收到網絡故障或異常,此時客戶端自然也是需要主動終止此次Polling請求。
重新Polling
終止上次Polling后,客戶端需要立即再次發起Polling請求。這樣才能保證拉取數據的及時性。
3. comet 使用ajax長輪詢或iframe及htmlfile的流
4. SSE Server-Sent-Events,在瀏覽器中的支持以及很好,除了IE都支持

5. WebSocket,全雙工通信,在瀏覽器中的支持也很好,包括IE10以上

各種技術對比

參考:https://blog.csdn.net/qinyuanpei/article/details/87876849
