GameNetworkSendAssemble.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Fort23.Core;
  2. using NetCore.Protocol.MemoryPack;
  3. using Protocol.Protocol.MemoryPack.MemoryMessage;
  4. namespace GameLogic.NetworkClient
  5. {
  6. public static class GameNetworkSendAssemble
  7. {
  8. public static async CTask<MemoryResponse> SendToServer(MemoryRequest memoryRequest,
  9. System.Action<MemoryResponse> callBack)
  10. {
  11. MemoryResponse memoryResponse = null;
  12. CTask task = CTask.Create(false);
  13. SendRequestBuffer sendRequestBuffer = new SendRequestBuffer();
  14. sendRequestBuffer.MemoryRequest = memoryRequest;
  15. sendRequestBuffer.callBack = delegate(MemoryResponse response)
  16. {
  17. memoryResponse = response;
  18. task.SetResult();
  19. callBack?.Invoke(response);
  20. };
  21. GameNetworkClient.Instance.SendToServer(sendRequestBuffer);
  22. await task;
  23. return memoryResponse;
  24. }
  25. /// <summary>
  26. /// 登录
  27. /// </summary>
  28. public static async CTask<MemoryResponse> SendLogin(string account, string password)
  29. {
  30. MemoryRequest memoryRequest = new MemoryRequest();
  31. memoryRequest.GameSendType = GameSendType.Login;
  32. memoryRequest.LoginRequest = new LoginRequest();
  33. memoryRequest.LoginRequest.account = account;
  34. memoryRequest.LoginRequest.password = password;
  35. return await SendToServer(memoryRequest, null);
  36. }
  37. }
  38. }