From 72841f1b3e910d99553570a3365f5fdf909f2e39 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 10 十二月 2018 11:59:50 +0800
Subject: [PATCH] 3335 修改跨服断线判断。

---
 Core/GameEngine/DataToCtl/ConnectedState.cs |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/Core/GameEngine/DataToCtl/ConnectedState.cs b/Core/GameEngine/DataToCtl/ConnectedState.cs
index 3b51944..fe9cd72 100644
--- a/Core/GameEngine/DataToCtl/ConnectedState.cs
+++ b/Core/GameEngine/DataToCtl/ConnectedState.cs
@@ -43,11 +43,13 @@
             return;
         }
 
-        if (GameNetSystem.Instance.timeSinceMainSocketLastProtocol > OVERTIME_THRESHOLD)
+        if (GameNetSystem.Instance.timeSinceMainSocketLastProtocol > OVERTIME_THRESHOLD
+            || (!GameNetSystem.Instance.isCrossSevering && GameNetSystem.Instance.timeSinceCrossServerSocketLastProtocol > OVERTIME_THRESHOLD))
         {
             DetectConnected(3);
         }
-        else if (!GameNetSystem.Instance.mainSocketConnected)
+        else if (!GameNetSystem.Instance.mainSocketConnected
+            || !GameNetSystem.Instance.crossServerSocketConnected)
         {
             DetectConnected(3);
         }
@@ -68,9 +70,16 @@
     {
         connectedDetecting = true;
 
-        var sendInfo = new C0104_tagCOnlineReturn();
-        sendInfo.Type = 0;
-        GameNetSystem.Instance.SendInfo(sendInfo);// 鍦ㄧ嚎鍥炲簲
+        var sendInfo1 = new C0104_tagCOnlineReturn();
+        sendInfo1.Type = 0;
+        GameNetSystem.Instance.SendInfo(sendInfo1);// 鍦ㄧ嚎鍥炲簲
+
+        if (GameNetSystem.Instance.isCrossSevering)
+        {
+            var sendInfo2 = new C0104_tagCOnlineReturn();
+            sendInfo2.Type = 0;
+            GameNetSystem.Instance.SendToCrossServer(sendInfo2);// 鍦ㄧ嚎鍥炲簲
+        }
 
         Clock.Create(DateTime.Now + new TimeSpan(_seconds * TimeSpan.TicksPerSecond), OnDetectEnd);
     }
@@ -87,6 +96,16 @@
             || GameNetSystem.Instance.timeSinceMainSocketLastProtocol > OVERTIME_THRESHOLD;
 #endif
 
+        if (GameNetSystem.Instance.isCrossSevering)
+        {
+#if UNITY_IOS && !UNITY_EDITOR
+            isDisconnected = isDisconnected || GameNetSystem.Instance.timeSinceCrossServerSocketLastProtocol > 3f;
+#else
+            isDisconnected = isDisconnected || !GameNetSystem.Instance.crossServerSocketConnected
+                || GameNetSystem.Instance.timeSinceCrossServerSocketLastProtocol > OVERTIME_THRESHOLD;
+#endif
+        }
+
         if (isDisconnected)
         {
             switch (Application.internetReachability)

--
Gitblit v1.8.0