標籤:

斷線重連問題綜述

斷線重連主要涉及到幾個問題:

  1. 判定斷線
  2. 怎麼重連
  3. 重連後如何還原遊戲環境

判定斷線有兩種方式,(1)是超時判定斷線,定時發送心跳包等待回應,如果一個心跳包超過10s沒有收到回應,則認為超時斷線。網路延遲高、wifi切4g會導致超時。4g切wifi不會斷開連接,是因為4g切了wifi後遊戲還在保持用4g通訊(2)被動觸發斷線是指網路庫catch到網路斷開消息。伺服器重啟、程序切後台鎖屏、某些本地網路斷開行為(比如拔網線)都會導致被動觸發斷線。

怎麼重連指的是客戶端需要不斷嘗試連接伺服器(我們是10s一次)。假如只是在沒有網路或網路很弱的情況發起一次重新連接,可能這次連接是不成功的,並且在網路恢復時也不會連接上伺服器。另外,要注意的是,在發起新的一次重新連接時,要把以往的連接主動close銷毀掉,否則可能出現以往的重連在經過長時間後連接成功,同時出現了多個連接。

重連後如何還原遊戲環境這個在另外一篇文章《狀態同步的斷線重連》中,有詳細表述

推薦閱讀:

通服整體架構設計概述
記錄一次伺服器宕機分析過程(2)-深入Lua GC
遊戲排行榜
卡牌戰鬥系統設計概述
幀同步和狀態同步

TAG:遊戲伺服器 |