天天看點

移動平台遊戲網絡優化方案

目标

  1. 對程式的包量和通信進行優化,從根本上減緩網絡壓力
  2. 在出現網絡異常的時候,保證玩家能快速重新連接配接到伺服器并繼續遊戲,并且體驗良好

重連條件

  1. NetworkException,Timeout 在這種顯式抛出異常的情況下,就說明網絡已經無法順利的和伺服器進行連接配接,在這些消息類型中用戶端這邊就會觸發斷線重連流程
  2. 但實際情況中,還有可能發生用戶端網絡并未斷開,也并沒有異常抛出,但是卻出現用戶端和伺服器無法正常進行收發消息的情況,這種情況一方面原因是中間鍊路的連接配接異常,另一方面也會由于延遲過高或丢包導緻的TCP重發造成的延遲過大,影響到伺服器和用戶端之間正常的收發消息,是以,對心跳包在一定時間内如果沒有收到傳回包的情況下也認為是一種掉線情況,會觸發斷線重連處理
  3. 用戶端切出遊戲,或者中間接到電話等導緻遊戲暫停等情況,在一定時間後伺服器會主動斷開和用戶端的連接配接,用戶端也需要主動觸發重連(伺服器保持連接配接的時間盡可能長)

技術方案

  1. 用戶端網絡的緩沖區擴大,TCP協定中,用戶端緩沖區在網絡不穩定的時候容易寫滿導緻的問題
  2. 減少,壓縮資料包,合并小包和減少包量可以很大幅度的減少流量。而且也容易避免由于滑動視窗可發送部分的迅速充滿導緻的網絡擁塞
  3. 單個包的大小過大也會迅速的撐大緩沖區,而且在傳輸過程中造成傳輸峰值,拆分過大的包,減緩網絡壓力,也能達到優化網絡的目的
  4. 檢測心跳

繼續閱讀