internal void pumpNetwork()
{
while(true)
{
var message = _serverInstance.WaitMessage(1);
if (message == null) break;
switch (message.MessageType)
{
case NetIncomingMessageType.VerboseDebugMessage:
case NetIncomingMessageType.DebugMessage:
case NetIncomingMessageType.WarningMessage:
case NetIncomingMessageType.ErrorMessage:
//log
break;
case NetIncomingMessageType.StatusChanged:
NetConnectionStatus status = (NetConnectionStatus)message.ReadByte();
switch(status)
{
case NetConnectionStatus.Connected:
OnRaiseConnectedEvent(message.SenderConnection);
break;
case NetConnectionStatus.Disconnected:
OnRaiseDisconnectedEvent(message.SenderConnection);
break;
}
break;
case NetIncomingMessageType.Data:
var packet = Packet.Get(message);
packet.Connection = (NetNode)message.SenderConnection;
packet.ReceiveTime = message.ReceiveTime;
PacketFactory.RaiseCallbacks(packet);
break;
default:
//log
break;
}
_serverInstance.Recycle(message);
}
}