public void Update()
{
this.OnEvents();
if (this.Service() < 0)
{
return;
}
while (true)
{
ENetEvent eNetEvent = this.TryGetEvent();
if (eNetEvent == null)
{
return;
}
switch (eNetEvent.Type)
{
case EventType.Connect:
{
// 这是一个connect peer
if (this.USocketManager.ContainsKey(eNetEvent.Peer))
{
USocket uSocket = this.USocketManager[eNetEvent.Peer];
uSocket.OnConnected();
break;
}
// 这是accept peer
if (this.AcceptTcs != null)
{
this.OnAccepted(eNetEvent);
break;
}
// 如果server端没有acceptasync,则请求放入队列
this.connQueue.Add(eNetEvent.Peer, eNetEvent);
break;
}
case EventType.Receive:
{
USocket uSocket = this.USocketManager[eNetEvent.Peer];
uSocket.OnReceived(eNetEvent);
break;
}
case EventType.Disconnect:
{
USocket uSocket = this.USocketManager[eNetEvent.Peer];
this.USocketManager.Remove(uSocket.PeerPtr);
uSocket.PeerPtr = IntPtr.Zero;
uSocket.OnDisconnect(eNetEvent);
break;
}
}
}
}