Browse Source

【优化】增加启动参数指定是否启动服务器时刷新AccessToken

johnclot69 1 year ago
parent
commit
b0d80aea26

+ 4 - 1
DotNet/Hotfix/Helper/SceneFactory.cs

@@ -44,7 +44,10 @@ namespace ET.Server
                     scene.AddComponent<BattleIceAgentComponent>();
                     scene.AddComponent<ObjectWait>();
                     // 抖音AccessToken组件
-                    scene.AddComponent<GameDouyinComponent>();
+                    if (Options.Instance.InitAccessToken == 1)
+                    {
+                        scene.AddComponent<GameDouyinComponent>();
+                    }
                     break;
                 case SceneType.Location:
                     scene.AddComponent<LocationComponent>();

+ 12 - 2
DotNet/Hotfix/Scenes/Game/GameDouyinComponentSystem.cs

@@ -29,7 +29,7 @@ namespace ET.Server
         {
             protected override void Update(GameDouyinComponent self)
             {
-                if (TimeHelper.ClientNow() < self.AccessTokenTime)
+                if (TimeHelper.ClientNow() <= self.AccessTokenTime)
                 {
                     return;
                 }
@@ -110,7 +110,17 @@ namespace ET.Server
 
             if (errNo != 0)
             {
-                Log.Error($"InitRoomId - GetLiveInfoUrl请求成功...返回错误:{errNo}");
+                // 容错处理
+                if (errNo == 40004)
+                {
+                    Log.Debug($"InitRoomId - 40004 容错处理:AccessToken不合法,下一秒重新刷新");
+                    self.AccessTokenTime = 0;
+                }
+                else
+                {
+                    Log.Error($"InitRoomId - GetLiveInfoUrl请求成功...返回错误:{errNo}");
+                }
+
                 return null;
             }
 

+ 8 - 4
Unity/Assets/Scripts/Core/Module/Options/Options.cs

@@ -14,7 +14,7 @@ namespace ET
         BenchmarkClient,
         BenchmarkServer,
     }
-    
+
     public class Options: Singleton<Options>
     {
         [Option("AppType", Required = false, Default = AppType.Server, HelpText = "AppType enum")]
@@ -25,18 +25,22 @@ namespace ET
 
         [Option("Process", Required = false, Default = 1)]
         public int Process { get; set; }
-        
+
         [Option("Develop", Required = false, Default = 0, HelpText = "develop mode, 0正式 1开发 2压测")]
         public int Develop { get; set; }
 
         [Option("LogLevel", Required = false, Default = 2)]
         public int LogLevel { get; set; }
-        
+
         [Option("Console", Required = false, Default = 0)]
         public int Console { get; set; }
 
         // 进程启动是否创建该进程的scenes
         [Option("CreateScenes", Required = false, Default = 1)]
         public int CreateScenes { get; set; }
+
+        // AccessToken启动参数
+        [Option("InitAccessToken", Required = false, Default = 0, HelpText = "0不刷新 1刷新")]
+        public int InitAccessToken { get; set; }
     }
-}
+}