private void OnGameEngineMessage(GameMessage message) { message = BeforeMessageProcessing(message); var eventData = ProtobufSerializerUtil.Serialize(message); var data = new Dictionary <byte, object>() { { 245, eventData }, { 245, 0 } }; // Broadcast the message to the client, the event code will be similar to the message code if (!_isEndGame || message.GetType() == typeof(MessageGameResult)) { BroadcastEvent((byte)message.Code, data); } }
public void Send <T>(T message, IPEndPoint remoteEndPoint) where T : GameMessage { var data = ProtobufSerializerUtil.Serialize(message); var datagram = new byte[data.Length + 4]; byte[] codeBytes; codeBytes = BitConverter.GetBytes((int)message.Code); codeBytes.CopyTo(datagram, 0); data.CopyTo(datagram, 4); UdpClient.Send(datagram, datagram.Length, remoteEndPoint); }