public override NetIncomingMessage ReadMessage() { if (messages.Count() > 0) { return(messages.Dequeue()); } ENet.Event e; bool ret = ((EnetHostNative)host).host.Service(0, out e); event_ = new EnetEventNative(e); if (ret) { do { switch (event_.Type()) { case EnetEventType.Connect: { EnetPeer peer = event_.Peer(); peer.SetUserData(clientid++); EnetNetConnection senderConnectionConnect = new EnetNetConnection(); senderConnectionConnect.peer = event_.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionConnect; message.Type = NetworkMessageType.Connect; messages.Enqueue(message); } break; case EnetEventType.Receive: { byte[] data = event_.Packet().GetBytes(); event_.Packet().Dispose(); EnetNetConnection senderConnectionReceive = new EnetNetConnection(); senderConnectionReceive.peer = event_.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionReceive; message.message = data; message.Type = NetworkMessageType.Data; messages.Enqueue(message); } break; case EnetEventType.Disconnect: { EnetNetConnection senderConnectionDisconnect = new EnetNetConnection(); senderConnectionDisconnect.peer = event_.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionDisconnect; message.Type = NetworkMessageType.Disconnect; messages.Enqueue(message); } break; } ret = ((EnetHostNative)host).host.CheckEvents(out e); event_ = new EnetEventNative(e); }while (ret); } if (messages.Count() > 0) { return(messages.Dequeue()); } return(null); }
public override NetIncomingMessage ReadMessage() { if (messages.Count() > 0) { return messages.Dequeue(); } if (platform.EnetHostService(host, 0, event_)) { do { switch (event_.e.Type()) { case EnetEventType.Connect: { EnetPeer peer = event_.e.Peer(); peer.SetUserData(clientid++); EnetNetConnection senderConnectionConnect = new EnetNetConnection(); senderConnectionConnect.platform = platform; senderConnectionConnect.peer = event_.e.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionConnect; message.Type = NetworkMessageType.Connect; messages.Enqueue(message); } break; case EnetEventType.Receive: { byte[] data = event_.e.Packet().GetBytes(); event_.e.Packet().Dispose(); EnetNetConnection senderConnectionReceive = new EnetNetConnection(); senderConnectionReceive.platform = platform; senderConnectionReceive.peer = event_.e.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionReceive; message.message = data; message.Type = NetworkMessageType.Data; messages.Enqueue(message); } break; case EnetEventType.Disconnect: { EnetNetConnection senderConnectionDisconnect = new EnetNetConnection(); senderConnectionDisconnect.platform = platform; senderConnectionDisconnect.peer = event_.e.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionDisconnect; message.Type = NetworkMessageType.Disconnect; messages.Enqueue(message); } break; } } while (platform.EnetHostCheckEvents(host, event_)); } if (messages.Count() > 0) { return messages.Dequeue(); } return null; }
public override NetIncomingMessage ReadMessage() { if (messages.Count() > 0) { return(messages.Dequeue()); } if (platform.EnetHostService(host, 0, event_)) { do { switch (event_.e.Type()) { case EnetEventType.Connect: { EnetPeer peer = event_.e.Peer(); peer.SetUserData(clientid++); EnetNetConnection senderConnectionConnect = new EnetNetConnection(); senderConnectionConnect.platform = platform; senderConnectionConnect.peer = event_.e.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionConnect; message.Type = NetworkMessageType.Connect; messages.Enqueue(message); } break; case EnetEventType.Receive: { byte[] data = event_.e.Packet().GetBytes(); event_.e.Packet().Dispose(); EnetNetConnection senderConnectionReceive = new EnetNetConnection(); senderConnectionReceive.platform = platform; senderConnectionReceive.peer = event_.e.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionReceive; message.message = data; message.Type = NetworkMessageType.Data; messages.Enqueue(message); } break; case EnetEventType.Disconnect: { EnetNetConnection senderConnectionDisconnect = new EnetNetConnection(); senderConnectionDisconnect.platform = platform; senderConnectionDisconnect.peer = event_.e.Peer(); NetIncomingMessage message = new NetIncomingMessage(); message.SenderConnection = senderConnectionDisconnect; message.Type = NetworkMessageType.Disconnect; messages.Enqueue(message); } break; } }while (platform.EnetHostCheckEvents(host, event_)); } if (messages.Count() > 0) { return(messages.Dequeue()); } return(null); }