示例#1
0
        private async void OnLogin()
        {
            Session session = null;

            try
            {
                session = Hotfix.Scene.ModelScene.GetComponent <NetOuterComponent>().Create("127.0.0.1:10002");
                string    text     = this.account.GetComponent <InputField>().text;
                R2C_Login r2CLogin = await session.Call <R2C_Login>(new C2R_Login()
                {
                    Account = text, Password = "******"
                });

                Session gateSession = Hotfix.Scene.ModelScene.GetComponent <NetOuterComponent>().Create(r2CLogin.Address);
                Game.Scene.AddComponent <SessionComponent>().Session = gateSession;

                G2C_LoginGate g2CLoginGate = await SessionComponent.Instance.Session.Call <G2C_LoginGate>(new C2G_LoginGate(r2CLogin.Key));

                Log.Info("登陆gate成功!");

                Hotfix.Scene.GetComponent <UIComponent>().Create(UIType.Lobby);
                Hotfix.Scene.GetComponent <UIComponent>().Remove(UIType.Login);
            }
            catch (Exception e)
            {
                Log.Error(e.ToStr());
            }
            finally
            {
                session?.Dispose();
            }
        }
示例#2
0
        private async void OnCreateRoom()
        {
            Session session = null;

            try
            {
                session = Hotfix.Scene.ModelScene.GetComponent <NetOuterComponent>().Create("127.0.0.1:10001");
                R2C_Login r2CLogin = await session.Call <C2R_Login, R2C_Login>(new C2R_Login()
                {
                    Account = "abcdef", Password = "******"
                });

                Session       gateSession  = Hotfix.Scene.ModelScene.GetComponent <NetOuterComponent>().Create(r2CLogin.Address);
                G2C_LoginGate g2CLoginGate = await gateSession.Call <C2G_LoginGate, G2C_LoginGate>(new C2G_LoginGate(r2CLogin.Key));

                Log.Info("登陆gate成功!");
            }
            catch (Exception e)
            {
                Log.Error(e.ToStr());
            }
            finally
            {
                session?.Dispose();
            }
        }
示例#3
0
        public async void OnLogin()
        {
            try
            {
                IPEndPoint connetEndPoint = NetworkHelper.ToIPEndPoint(GlobalConfigComponent.Instance.GlobalProto.Address);
                Session    session        = Game.Scene.GetComponent <NetOuterComponent>().Create(connetEndPoint);
                string     text           = this.account.GetComponent <InputField>().text;


                R2C_Login r2CLogin = (R2C_Login)await session.Call(new C2R_Login()
                {
                    Account = text, Password = "******"
                }, true);

                if (r2CLogin.Error != ErrorCode.ERR_Success)
                {
                    Log.Error(r2CLogin.Error.ToString());
                    return;
                }

                connetEndPoint = NetworkHelper.ToIPEndPoint(r2CLogin.Address);
                Session gateSession = Game.Scene.GetComponent <NetOuterComponent>().Create(connetEndPoint);
                Game.Scene.AddComponent <SessionComponent>().Session = gateSession;

                G2C_LoginGate g2CLoginGate = (G2C_LoginGate)await SessionComponent.Instance.Session.Call(new C2G_LoginGate()
                {
                    Key = r2CLogin.Key
                }, true);

                Log.Info("登陆gate成功!");

                // 创建Player
                Player          player          = Model.EntityFactory.CreateWithId <Player>(g2CLoginGate.PlayerId);
                PlayerComponent playerComponent = Game.Scene.GetComponent <PlayerComponent>();
                playerComponent.MyPlayer = player;

                Hotfix.Scene.GetComponent <UIComponent>().Create(UIType.UILobby);
                Hotfix.Scene.GetComponent <UIComponent>().Remove(UIType.UILogin);
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
示例#4
0
        private async void OnLogin()
        {
            Session session = null;

            try
            {
                session = Hotfix.Scene.ModelScene.GetComponent <NetOuterComponent>().Create("127.0.0.1:10002");
                string    account  = this.account.GetComponent <InputField>().text;
                R2C_Login r2CLogin = await session.Call <R2C_Login>(new C2R_Login()
                {
                    Account = account, Password = "******"
                });

                Session       gateSession  = Hotfix.Scene.ModelScene.GetComponent <NetOuterComponent>().Create(r2CLogin.Address);
                G2C_LoginGate g2CLoginGate = await gateSession.Call <G2C_LoginGate>(new C2G_LoginGate(r2CLogin.Key));

                //Log.Debug($"{JsonHelper.ToJson(g2CLoginGate)}");

                Log.Info("登陆gate成功!");

                // 发送一个actor消息
                gateSession.Send(new Actor_Test()
                {
                    Info = "message client->gate->map->gate->client"
                });

                // 向actor发起一次rpc调用
                ActorRpc_TestResponse response = await gateSession.Call <ActorRpc_TestResponse>(new ActorRpc_TestRequest()
                {
                    request = "request actor test rpc"
                });

                Log.Info($"recv response: {JsonHelper.ToJson(response)}");
            }
            catch (Exception e)
            {
                Log.Error(e.ToStr());
            }
            finally
            {
                session?.Dispose();
            }
        }
示例#5
0
        private void LoginGateOk(AResponse response)
        {
            G2C_LoginGate g2CLoginGate = (G2C_LoginGate)response;

            if (g2CLoginGate.Error != ErrorCode.ERR_Success)
            {
                Log.Error(g2CLoginGate.Error.ToString());
                return;
            }

            Log.Info("登陆gate成功!");

            // 创建Player
            Player          player          = Model.EntityFactory.CreateWithId <Player>(g2CLoginGate.PlayerId);
            PlayerComponent playerComponent = Game.Scene.GetComponent <PlayerComponent>();

            playerComponent.MyPlayer = player;

            Hotfix.Scene.GetComponent <UIComponent>().Create(UIType.UILobby);
            Hotfix.Scene.GetComponent <UIComponent>().Remove(UIType.UILogin);
        }