| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 
							- using System;
 
- using System.Collections.Generic;
 
- using Fort23.Core;
 
- using Fort23.UTool;
 
- using NetClientCore.TCP;
 
- using NetCore;
 
- using NetCore.ContentParse;
 
- using NetCore.Protocol;
 
- using NetCore.Protocol.MemoryPack;
 
- using Protocol.MemoryPack.MemoryMessage;
 
- using Protocol.Protocol.MemoryPack.MemoryMessage;
 
- using Utility;
 
- namespace GameLogic.NetworkClient
 
- {
 
-     public class GameNetworkClient : Singleton<GameNetworkClient>, ILogicalParsing
 
-     {
 
-         private IConnection _connection;
 
-         private Queue<SendRequestBuffer> _sendRequestBuffers = new Queue<SendRequestBuffer>();
 
-         private SendRequestBuffer _currSendRequestBuffer;
 
-         private Queue<MemoryResponse> _acceptRequestBuffers = new Queue<MemoryResponse>();
 
-         public async CTask Connect(string ip, int port)
 
-         {
 
-             TCPClient<ByteParse, ClientMemoryWrap> tcpClient = new TCPClient<ByteParse, ClientMemoryWrap>();
 
-             await tcpClient.Connect(ip, port, this);
 
-             _connection = tcpClient;
 
-             StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
 
-         }
 
-         public void Logic(object data, IConnection iConnection)
 
-         {
 
-             var memoryResponse = data as MemoryResponse;
 
-             _acceptRequestBuffers.Enqueue(memoryResponse);
 
-         }
 
-         public void SendToServer(SendRequestBuffer sendRequestBuffer)
 
-         {
 
-             if (_currSendRequestBuffer == null)
 
-             {
 
-                 Send(sendRequestBuffer);
 
-             }
 
-             else
 
-             {
 
-                 _sendRequestBuffers.Enqueue(sendRequestBuffer);
 
-             }
 
-         }
 
-         private void Send(SendRequestBuffer sendRequestBuffer)
 
-         {
 
-             _currSendRequestBuffer = sendRequestBuffer;
 
-             _connection.SendData(sendRequestBuffer.MemoryRequest);
 
-         }
 
-         public void Update()
 
-         {
 
-             if (_currSendRequestBuffer == null && _sendRequestBuffers.Count > 0)
 
-             {
 
-                 _currSendRequestBuffer = _sendRequestBuffers.Dequeue();
 
-                 Send(_currSendRequestBuffer);
 
-             }
 
-             
 
-             while (_acceptRequestBuffers.Count > 0)
 
-             {
 
-                 var memoryResponse = _acceptRequestBuffers.Dequeue();
 
-                 if (memoryResponse.RespomseType == RespomseType.Respomse)
 
-                 {
 
-                     try
 
-                     {
 
-                         if (_currSendRequestBuffer != null&&memoryResponse.GameSendType==_currSendRequestBuffer.MemoryRequest.GameSendType)
 
-                         {
 
-                             SendRequestBuffer sendRequestBuffer = _currSendRequestBuffer;
 
-                             _currSendRequestBuffer = null;
 
-                             sendRequestBuffer.callBack?.Invoke(memoryResponse);
 
-                         }
 
-                     }
 
-                     catch (Exception e)
 
-                     {
 
-                        LogTool.Error(e);
 
-                     }
 
-                 }
 
-             }
 
-             
 
-         }
 
-         protected override void ProDispose()
 
-         {
 
-             _currSendRequestBuffer = null;
 
-             _sendRequestBuffers.Clear();
 
-             StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
 
-             _connection.Dispose();
 
-         }
 
-         public void AddConnection(IConnection iConnection)
 
-         {
 
-         }
 
-         public void RemoveConnection(IConnection iConnection)
 
-         {
 
-         }
 
-     }
 
- }
 
 
  |