C2R_LoginHandler.cs 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using Base;
  3. using Model;
  4. namespace Controller
  5. {
  6. [MessageHandler(AppType.Realm)]
  7. public class C2R_LoginHandler: AMRpcEvent<C2R_Login, R2C_Login>
  8. {
  9. protected override async void Run(Entity session, C2R_Login message, Action<R2C_Login> reply)
  10. {
  11. R2C_Login r2CLogin;
  12. if (message.Account != "abcdef" || message.Password != "111111")
  13. {
  14. r2CLogin = new R2C_Login {Error = ErrorCode.ERR_AccountOrPasswordError, Message = "账号名或者密码错误!"};
  15. reply(r2CLogin);
  16. return;
  17. }
  18. // 随机分配一个Gate
  19. string gateAddress = Game.Scene.GetComponent<RealmGateAddressComponent>().GetAddress();
  20. Entity gateSession = Game.Scene.GetComponent<NetworkComponent>().Get(gateAddress);
  21. // 向gate请求一个key,客户端可以拿着这个key连接gate
  22. G2R_GetLoginKey g2RGetLoginKey = await gateSession.GetComponent<MessageComponent>().Call<R2G_GetLoginKey, G2R_GetLoginKey>(new R2G_GetLoginKey());
  23. r2CLogin = new R2C_Login {Address = gateAddress, Key = g2RGetLoginKey.Key};
  24. reply(r2CLogin);
  25. }
  26. }
  27. }