socket難點與解決方案提議

weixin_33912246發表於2017-07-25

最近公司說要重做聊天模組,之前是用的http輪詢。。。然後在討論用什麼框架的時候,老大說,我們自己寫。。恩。。自己寫。。。自己寫。。。。自己寫。。。。

先理了下思路,感覺重點有下面幾個

  1. 長連線的維護
    1.1 手機低電量程式被殺
    1.2 手機深度休眠被殺
    1.3 記憶體佔用過大被殺
  2. 斷網重連
  3. 賬號重複登入

綜上,

  1. 需要一個心跳檢測,一段時間沒反應(斷開連線)就要重新連線,這時候要考慮socket物件複用、和重複的問題
  2. 手機網路中斷的時候,心跳需要關閉,當網路重啟時繼續心跳
  3. 收到資料時做確認回饋,服務端沒有收到回饋時重新發包(檢測資料丟失問題)

但是,以第一點問題來說,socket本身的長連線可以通過心跳包檢測重連,但是socket所在程式被殺卻沒有辦法

相關文章