Browse Source

修改登录逻辑适配抖音接入

大爷 1 year ago
parent
commit
ec9abae180

BIN
Unity/Assets/Res/FGUI/Login_atlas0.png


BIN
Unity/Assets/Res/FGUI/Login_fui.bytes


+ 7 - 12
Unity/Assets/Scripts/Codes/Hotfix/Client/Login/LoginHelper.cs

@@ -6,7 +6,7 @@ namespace ET.Client
 {
     public static class LoginHelper
     {
-        public static async ETTask<int> Login(string ip, int port, int roomid)
+        public static async ETTask<int> Login(string ip, int port, string roomToken)
         {
             Scene clientScene = ClientSceneManagerComponent.Instance.Get( 1 );
             if( clientScene == null )
@@ -17,8 +17,6 @@ namespace ET.Client
 
             try
             {
-                var strRoomid = roomid.ToString();
-
                 // 创建一个ETModel层的Session
                 clientScene.RemoveComponent<RouterAddressComponent>();
                 clientScene.RemoveComponent<NetClientComponent>();
@@ -32,17 +30,16 @@ namespace ET.Client
                     routerAddressComponent.RouterManagerIPAddress.AddressFamily,
                     NetworkProtocol.KCP
                 );
-                //如果有多个网关地址,则通过roomid弄点花样模拟随机获取一个地址
-                IPEndPoint realmAddress = routerAddressComponent.GetRealmAddress( strRoomid );
+                //如果有多个软路由地址,则通过roomid弄点花样模拟随机获取一个地址
+                IPEndPoint realmAddress = routerAddressComponent.GetRealmAddress(roomToken);
 
                 // 登陆验证
                 R2C_Login r2CLogin;
                 using (Session session = clientScene.GetComponent<NetClientComponent>().Create(realmAddress))
                 // using (Session session = await RouterHelper.CreateRouterSession(clientScene, realmAddress))
                 {
-                    r2CLogin = (R2C_Login)await session.Call(new C2R_Login() { RoomId = strRoomid } );
+                    r2CLogin = (R2C_Login)await session.Call(new C2R_Login() );
                 }
-
                 if (r2CLogin.Error != ErrorCode.ERR_Success)
                 {
                     Log.Debug($"登陆验证错误...errCode={r2CLogin.Error}");
@@ -54,8 +51,7 @@ namespace ET.Client
                 // Session gateSession = await RouterHelper.CreateRouterSession(clientScene, NetworkHelper.ToIPEndPoint(r2CLogin.Address[0]));
 
                 // 登陆gate
-                G2C_LoginGame g2CLoginGate = (G2C_LoginGame)await gateSession.Call(new C2G_LoginGame() { Token = r2CLogin.Token });
-
+                G2C_LoginGame g2CLoginGate = (G2C_LoginGame)await gateSession.Call(new C2G_LoginGame() { Token = roomToken });
                 if (g2CLoginGate.Error != ErrorCode.ERR_Success)
                 {
                     Log.Debug($"登陆game错误...errCode={g2CLoginGate.Error}");
@@ -66,9 +62,8 @@ namespace ET.Client
                 gateSession.AddComponent<PingComponent>();
                 clientScene.AddComponent<SessionComponent>().Session = gateSession;
                 var player = clientScene.GetComponent<PlayerComponent>();
-                player.Token = r2CLogin.Token;
-                Log.Debug($"登陆game成功...token={r2CLogin.Token}");
-
+                //player.Token = r2CLogin.Token;
+                
                 //var player = g2CLoginGate.Players[0];
                 //TODO:选角进入
                 //使用简化流程直接进入游戏

+ 0 - 1
Unity/Assets/Scripts/Codes/Hotfix/Client/Router/RouterAddressComponentSystem.cs

@@ -31,7 +31,6 @@ namespace ET.Client
             Log.Debug($"recv router info: {routerInfo}");
             HttpGetRouterResponse httpGetRouterResponse = JsonHelper.FromJson<HttpGetRouterResponse>(routerInfo);
             self.Info = httpGetRouterResponse;
-            Log.Debug($"start get router info finish: {JsonHelper.ToJson(httpGetRouterResponse)}");
             
             // 打乱顺序
             RandomGenerator.BreakRank(self.Info.Routers);

+ 48 - 37
Unity/Assets/Scripts/Codes/HotfixView/Client/UI/UILogin/ShowLoginUIEventHandle.cs

@@ -13,14 +13,27 @@ namespace ET.Client
     {
         private string mIP;
         private int mPort;
+        private string strRoomToken;
 
         protected override async ETTask OnEvent(ShowLoginUIEvent a)
         {
+            var args = Environment.GetCommandLineArgs();
+            for (var i = 0; i < args.Length; i++)
+            {
+                Log.Debug("args: " + args[i]);
+                if (args[i].StartsWith("-token="))
+                {
+                    strRoomToken = args[i][7..];
+                    Log.Debug($"env token: {strRoomToken}");
+                    break;
+                }
+            }
+
+            GRoot.inst.RemoveChildren();
+
             var view = await UIHelper.Create( "Login" );
-            InitLogin( view );
+            InitLogin( view ).Coroutine();
 
-            var preView = GRoot.inst.GetChild("CheckForResUpdate");
-            if(preView != null) GRoot.inst.RemoveChild( preView, true );
             UIPackage.RemovePackage( "CheckForResUpdate" );
         }
 
@@ -121,55 +134,37 @@ namespace ET.Client
 #endif
         }
 
-        private void InitLogin(GComponent view)
+        private async ETTask InitLogin(GComponent view)
         {
             var comp = view.GetChild("comp_login") as GComponent;
             var listSvr = view.GetChild("listServer").asComboBox;
-            var listResolution = comp.GetChild("listResolution").asComboBox;
+            var listResolution = view.GetChild("listResolution").asComboBox;
             InitServerList(listSvr);
             InitResolutionList(listResolution);
 
             var tips = comp.GetChild( "txt_tips" );
             var inputID = comp.GetChild("txtID").asTextInput;
-            var roomid = GameSetting.Instance.GetInt( GameSetting.Sets.TiktokRoomId_int );
+            var imgtips = comp.GetChild("img_tips");
+            /*var roomid = GameSetting.Instance.GetInt( GameSetting.Sets.TiktokRoomId_int );
             if(roomid > 0 )
             {
                 inputID.text = roomid.ToString();
             }
-            inputID.onChanged.Set( () => { tips.visible = false; } );
-            
-            var btn = comp.GetChild("btn_go");
+            inputID.onChanged.Set( () => { tips.visible = false; } );*/
+
+            inputID.text = strRoomToken;
+            var btn = comp.GetChild("btn_go").asButton;
             btn.onClick.Add(async () =>
             {
-                var imgtips = comp.GetChild("img_tips");
                 tips.visible = false;
-                imgtips.visible = false;
-                if (inputID.text.IsNullOrWhitespace())
-                {
-                    tips.visible = true;
-                    tips.text = "请输入直播间ID";
-                    return;
-                }
-                var roomid = 0;
-                try
-                {
-                    roomid = Convert.ToInt32( inputID.text );
-                }
-                catch(Exception)
-                {
-                    tips.visible = true;
-                    tips.text = "请输入正确的直播间ID";
-                    return;
-                }
-
                 imgtips.visible = true;
-                btn.enabled = false;
-                var ret = await LoginHelper.Login(mIP, mPort, roomid);
+                btn.visible = false;
+                var ret = await LoginHelper.Login(mIP, mPort, strRoomToken);
                 if (ret != ErrorCode.ERR_Success)
                 {
                     imgtips.visible = false;
                     tips.visible = true;
-                    btn.enabled = true;
+                    btn.visible = true;
 
                     if (ret == ErrorCode.ERR_UserNameOrPasswordFormatError ||
                     ret == ErrorCode.ERR_UserNameOrPasswordError)
@@ -179,16 +174,32 @@ namespace ET.Client
                     else
                     {
                         tips.text = "连接服务器过程中出现了问题\n" +
-                                                "如重试后还是不行,请与客服联系" +
-                                                "\n[color=#FF0000]QQ: 2910280670[/color]" +
-                                                "\n微信:[color=#FF0000]lvlh117[/color]";
+                                    "如重试后还是不行,请与客服联系" +
+                                    "\n抖音:[color=#FF0000]奥陌陌网络科技[/color]" +
+                                    "\n微信:[color=#FF0000]omm_wh[/color]";
                     }
                 }
-                else
+                /*else
                 {
                     GameSetting.Instance.SetInt(GameSetting.Sets.TiktokRoomId_int, roomid);
-                }
+                }*/
             });
+
+            if (strRoomToken.IsNullOrWhitespace())
+            {
+                tips.visible = true;
+                tips.text = "获得直播间token失败,请重新启动\n" +
+                            "如重试后还是不行,请与客服联系" +
+                            "\n抖音:[color=#FF0000]奥陌陌网络科技[/color]" +
+                            "\n微信:[color=#FF0000]omm_wh[/color]";
+                strRoomToken = "NoToken";
+                Log.Info("start without token");
+            }
+            else
+            {
+                //await TimerComponent.Instance.WaitAsync(300);
+                //btn.FireClick(false, true);
+            }
         }
     }
 }

+ 6 - 1
Unity/Assets/Scripts/Codes/Model/Client/Login/ServerInfo.cs

@@ -20,10 +20,15 @@ namespace ET.Client
                     Port = 30300
                 },
                 new ServerInfo{
-                    ShowName = "内网-lv[192.168.0.233:30300]",
+                    ShowName = "lv[192.168.0.233:30300]",
                     Ip = "192.168.0.233",
                     Port = 30300
                 },
+                new ServerInfo{
+                    ShowName = "dong[192.168.0.102:30300]",
+                    Ip = "192.168.0.102",
+                    Port = 30300
+                },
                 new ServerInfo{
                     ShowName = "外网[47.122.5.112:30300]",
                     Ip = "47.122.5.112",

+ 1 - 1
Unity/Assets/Scripts/Codes/Model/Client/Scene/PlayerComponent.cs

@@ -7,6 +7,6 @@
         public static PlayerComponent Instance;
 
         /** 登陆token **/
-        public string Token { get; set; }
+        //public string Token { get; set; }
     }
 }