Mars長連接管理

對長連的管理有兩個方面,一個是心跳(HeartBeat),一個是重連(Reconnect)。這兩個動作都是有策略性的。

一般心跳會間隔性的發出一個很小的心跳包,通過服務端返回來判斷連接是否健康。

在網絡斷開會,會自動重連,一般遵循逐漸遞增的方法,遞增的策略有所不同。

在Mars中,對這兩個策略有更精細化的管理,在Mars中對App運行的狀態分了兩種

1.前臺活動狀態(forground-active),前臺狀態10分鐘以上,可以認爲是App正常運行狀態

2. 後臺活動狀態(background-active),IOS切後臺10分鐘內爲後臺活動狀態

3 .後臺非活動狀態(inactive),IOS切到後臺10分鐘後狀態爲inactive。

這三種狀態下心跳和重連的策略進行了調整,分類比較下:

 

HeartBeat:

active: 以最小間隔發送心跳包,設定爲3.5分鐘

inactive:非活動狀態: 每次遞增20s,直到心跳最大間隔 10分鐘

 

Reconnect:

forground-active: 前臺狀態大於等於10分鐘:4分鐘一次;前臺狀態大於等於1分鐘,小於10分鐘:30s重連一次; 前臺狀態小於1分鐘: 15s重連一次;

background-active: 5分鐘重連一次

inactive: 0s,60s,120s,240s,360s,480s,600s,600s...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章