学习日记#08
客户端
LoginResult
public LoaginResult Login(string username, string pwd, out string token)
{
try
{
token = "";
User user = null;
user = MySqlMannger.Instance.sqlSugarClient.Queryable<User>().Where(it => it.Username == username).Single();
if(user != null)
{
if (user.Password != pwd)
{
return LoginResult.WrongPwd;
}
user.Logindate = DateTime.Now;
user.Token = Guid.NewGuid().ToString();
MysqlManager.Instance.sqlSugerClient.Updateable(user).ExecuteCommand();
return LoginResult.UserNotExist;
}
else
{
return LoginResult.UserNotExist;
}
}
catch(Exception e)
{
Debug.LogError("登录异常!" + e.ToString());
return LoginResult.Failed;
}
}
public enum ProtocolEnum
{
MsgRegister ,
}
public class MsgRegister : MsgBase
{
public MsgRegister()
{
}
public string Accout;
public string Password;
public RegisterResult registerResult;
}
public class MsgLogin() : MsgBase
{
public string Accout;
public string Password;
public LoginResult loginResult;
public string Token;
}
public class MsgHandler()
{
public static void MsgRegister(ClientSocket client, MsgBase msgBase)
{
MsgRegister msgRegister = (MsgRegister)msgBase;
RegisterResult result =
msgRegister.registerResult = result;
Send(clientSocket, msgRegister);
}
public static void MsgRegister(ClientSocket client, MsgBase msgBase)
{
MsgRegister msgLogin= (MsgRegister)msgBase;
string token;
RegisterResult result =
msgLogin.loginResult= result;
msgLogin.Token = token;
ServerSocket.Send(clientSocket, msgRegister);
}
}
public class ProtoManager()
{
public static void CSRegister(string account, string pwd, Action<RegisterResult> callback)
{
MsgRegister msgRegister = new MsgRegister();
msgRegister.Account = accout;
msgRegister.Password = pwd;
NetManager.Instance.SendMessage(msgReigster)'
NetManger.Instance.AddProtoListener(ProtocolEnum.MsgRegister, (msg) => {
MsgRegister msgRe = (MsgRegister)msg;
callback(msgRe.registerResult);
});
}
public static void CSRegister(string account, string pwd, Action<LoginResult> callback)
{
MsgLogin msgLogin = new MsgLogin ();
msgLogin .Account = accout;
msgLogin .Password = pwd;
NetManager.Instance.SendMessage(msgLogin )'
NetManger.Instance.AddProtoListener(ProtocolEnum.MsgLogin , (msg) => {
msgLogin msgRe = (MsgRegister)msg;
callback(msgRe.loginResult, msgRe.Token, ResigserCallback);
});
}
GameRoot.cs
(result, token)=>{
switch(result)
case:
}
void RegisterCallback(RegisterResult result)
{
switch(result)
{
case :
}
}
}
算法