斷線重連,其實並不是乙個神馬高深的東西,相信各位做遊戲的程式們都處理過這個問題,但是,怎麼把這個斷線重連做的安全,完善呢?下面就跟各位大神來討論討論這個問題~!
遊戲中,斷線重連(這裡是基於tcp長連來討論的)其實跟遊戲型別有關,比如頁遊,端遊,還是手遊。當然,我只做過頁遊和手遊,所以咱不對端遊發表意見。對於頁遊而言,一般是pc網路是很穩定的,如果不穩定,其實是沒辦法玩遊戲的,所以對於頁遊,一般斷線處理是重新登入,除非有要求要做重連機制。
而對於手機來說,網路是相當不穩定的,任何乙個基站的切換,進出電梯等都會出現網路抖動導致遊戲斷線。如果採用重登陸的話,那表現相當不友好而導致大量玩家流失。所以要設計乙個比較好的斷線重連,讓玩家能在網路不穩定的情況下,能比較流暢的進行遊戲。
在設計重連的時候,要考慮幾個因素:連線的安全性和超時處理,資料報快取。
1、安全性:為啥要考慮連線安全性呢,因為重連不是走正常登入流程,而是直連過來,所以無法保證連線過來的tcp是合法連線,故在此要對連線做合法校驗,保證直連過來的是正常客戶端請求過來的,預防攻擊。合法性校驗的方式很多,在此不展開講了,有興趣的可以私下交流。
2、超時處理,因為伺服器不可能無限制的等待客戶端重連,所以要設定乙個超時時間,如果過了超時等待時間,伺服器應該清除快取,客戶端走重登陸流程
3、資料報快取,這裡需要快取沒有傳送成功的訊息協議,客戶端重連過來後,需要再次重新傳送。
以上是專案過程中使用的方案,歡迎各位來討論,做一套更完善的重連機制。
websocket 斷線重連
摘要websocket reconnect websocket是html5發布之後出現的一種新技術,說它是新技術,其實也不是多新的技術了,因為畢竟也有2 3年了,但是找了很多國內的例項,缺發現不多,不知道是它不好用呢,還是說這種技術原來就有缺陷呢,咱們暫且不說,今天我們就來介紹一下websocket...
斷線重連機制
zookeeper的客戶端具有自動重連機制,當出現網路異常時,客戶端會自動重連直到與集群中的某台機器連線成功,連線過程如下圖所示 1.網路異常情況包括網路閃斷 zk伺服器宕機等情況,這會導致連線斷開connection loss,此時客戶端會收到事件none disconnected 2.如果在se...
TCP斷線重連
struct sockaddr in tempsadd tempsadd.sin family af inet tempsadd.sin port htons m serverport tempsadd.sin addr.s addr inet addr m serverip.c str if 1 ...