public override void OnRefresh()
 {
     if (!Available)
     {
         return;
     }
     OnReceive();
     peer.OnRefresh();
     if (awaitHandle.Count > 0)
     {
         UdpReceiveResult data;
         if (awaitHandle.TryDequeue(out data))
         {
             UdpNetworkMessage netMsg = Facade.SpawnReference <UdpNetworkMessage>();
             netMsg.CacheDecodeBuffer(data.Buffer);
             if (Conv == 0)
             {
                 Conv      = netMsg.Conv;
                 peer.Conv = Conv;
                 peer.AllocateConv(Conv);
             }
             if (netMsg.IsFull)
             {
                 peer.MessageHandler(netMsg);
             }
         }
     }
 }
        public override void OnRefresh()
        {
            clientPeerRefreshHandler?.Invoke();
            if (awaitHandle.Count > 0)
            {
                UdpReceiveResult data;
                if (awaitHandle.TryDequeue(out data))
                {
                    UdpNetMessage netMsg = CosmosEntry.ReferencePoolManager.Spawn <UdpNetMessage>();
                    netMsg.DecodeMessage(data.Buffer);
#if DEBUG
                    if (netMsg.Cmd == UdpProtocol.MSG)
                    {
                        Utility.Debug.LogInfo($" OnRefresh KCP_MSG:{netMsg} ;ServiceMessage : {Utility.Converter.GetString(netMsg.ServiceData)},TS:{netMsg.TS}");
                    }
#endif
                    if (netMsg.IsFull)
                    {
                        if (netMsg.Conv == 0)
                        {
                            conv       += 1;
                            netMsg.Conv = conv;
                            UdpClientPeer peer;
                            CreateClientPeer(netMsg, data.RemoteEndPoint, out peer);
                        }
                        if (peerDict.TryGetValue(netMsg.Conv, out var rPeer))
                        {
                            UdpClientPeer tmpPeer = rPeer as UdpClientPeer;
                            //如果peer失效,则移除
                            if (!tmpPeer.Available)
                            {
                                clientPeerRefreshHandler -= tmpPeer.OnRefresh;
                                AbortUnavilablePeer(rPeer);
                            }
                            else
                            {
                                tmpPeer.MessageHandler(netMsg);
                            }
                        }
                        else
                        {
                            //发送终结命令;
                            UdpNetMessage finMsg = UdpNetMessage.EncodeMessage(netMsg.Conv);
                            finMsg.Cmd = UdpProtocol.FIN;
                            SendFINMessageAsync(finMsg, data.RemoteEndPoint);
                        }
                    }
                }
            }
        }