private void RegisterReceive(Protocol protocol) { if (protocol.GetType() == typeof(RegisterFailedProtocol)) { RegisterFailedProtocol registerFailedProtocol = protocol as RegisterFailedProtocol; ClientManager.instance.receiveCallBack -= RegisterReceive; idInput.interactable = true; passwordInput.interactable = true; if (registerFailedProtocol.state == RegisterFailedState.IDAlreadyExist) { messageText.text = "注册失败,已经存在的ID"; } else if (registerFailedProtocol.state == RegisterFailedState.Unknown) { messageText.text = "注册失败,我也不知道为啥"; } } else if (protocol.GetType() == typeof(RegisterSuccessProtocol)) { ClientManager.instance.receiveCallBack -= RegisterReceive; messageText.text = "注册成功"; } }
public override void Execute(Protocol protocol, ClientToken client) { if (protocol.GetType() != typeof(RegisterProtocol)) { return; } RegisterProtocol registerProtocol = protocol as RegisterProtocol; Console.WriteLine("注册服务运行,账号为:" + registerProtocol.userId + ",密码为:" + registerProtocol.userPassword + ";"); AccountDatabase accountDatabase = server.databases[typeof(AccountDatabase)] as AccountDatabase; //检查是否ID已经被注册 if (accountDatabase.Find(x => (x.Id == registerProtocol.userId)) != null) { //已被注册,返回注册失败 RegisterFailedProtocol registerFailedProtocol = new RegisterFailedProtocol(); registerFailedProtocol.state = RegisterFailedState.IDAlreadyExist; Byte[] serializedProtocol = ProtocolHelper.ConvertProtocolToBytes(registerFailedProtocol); Byte[] encodingData = GameProtocol.Encoder.Encode(serializedProtocol); client.WriteSendData(encodingData); } else { //注册成功 RegisterSuccessProtocol registerSuccessProtocol = new RegisterSuccessProtocol(); registerSuccessProtocol.PassBadge = 0; //写入数据库 accountDatabase.Write(new Account() { Id = registerProtocol.userId, Password = registerProtocol.userPassword }); Byte[] serializedProtocol = ProtocolHelper.ConvertProtocolToBytes(registerSuccessProtocol); Byte[] encodingData = GameProtocol.Encoder.Encode(serializedProtocol); client.WriteSendData(encodingData); } }