예제 #1
0
    private void LoginReceive(Protocol protocol)
    {
        if (protocol.GetType() == typeof(LoginFailedProtocol))
        {
            LoginFailedProtocol loginFailedProtocol = protocol as LoginFailedProtocol;
            ClientManager.instance.receiveCallBack -= LoginReceive;

            idInput.interactable       = true;
            passwordInput.interactable = true;

            if (loginFailedProtocol.State == LoginFailedState.WrongID)
            {
                messageText.text = "登录失败,错误的ID";
            }
            else if (loginFailedProtocol.State == LoginFailedState.WrongPassword)
            {
                messageText.text = "登录失败,错误的密码";
            }
            else
            {
                messageText.text = "登录失败,我也不知道为啥";
            }
        }
        else if (protocol.GetType() == typeof(LoginSuccessProtocol))
        {
            ClientManager.instance.receiveCallBack -= LoginReceive;
            messageText.text = "登录成功";
        }
    }
예제 #2
0
        public override void Execute(Protocol protocol, ClientToken client)
        {
            if (protocol.GetType() != typeof(LoginProtocol))
            {
                return;
            }

            LoginProtocol loginProtocol = protocol as LoginProtocol;

            Console.WriteLine("登录服务运行,账号为:" + loginProtocol.userId + ",密码为:" + loginProtocol.userPassword + ";");

            AccountDatabase accountDatabase = server.databases[typeof(AccountDatabase)] as AccountDatabase;

            //查询是否有用户名密码相符的用户
            if (accountDatabase.Find(x => (x.Id == loginProtocol.userId && x.Password == loginProtocol.userPassword)) != null)
            {
                //登录成功
                LoginSuccessProtocol loginSuccessProtocol = new LoginSuccessProtocol();
                //生成令牌
                loginSuccessProtocol.PassBadge = 0;

                Byte[] serializedProtocol = ProtocolHelper.ConvertProtocolToBytes(loginSuccessProtocol);
                Byte[] encodingData       = GameProtocol.Encoder.Encode(serializedProtocol);

                client.WriteSendData(encodingData);
            }
            else
            {
                //登录失败
                LoginFailedProtocol loginFailedProtocol = new LoginFailedProtocol();
                if (accountDatabase.Find(x => (x.Id == loginProtocol.userId)) != null)
                {
                    loginFailedProtocol.State = LoginFailedState.WrongPassword;
                }
                else
                {
                    loginFailedProtocol.State = LoginFailedState.WrongID;
                }
                Byte[] serializedProtocol = ProtocolHelper.ConvertProtocolToBytes(loginFailedProtocol);
                Byte[] encodingData       = GameProtocol.Encoder.Encode(serializedProtocol);

                client.WriteSendData(encodingData);
            }
        }