protected override void ProcessStatsMessage(EStreamStatsMessage type, byte[] messageBuffer)
 {
     switch (type)
     {
     default:
         throw new NotImplementedException("Unknown message: " + type);
     }
 }
 protected void SendStatsMessage(EStreamStatsMessage type, byte[] messageBuffer)
 {
     conn.SendPacket(new DataPacket()
     {
         packetType = PacketType.Reliable,
         channel    = (byte)EStreamChannel.KEstreamChannelStats,
         payload    = new TypedMessage()
         {
             messageType = (byte)type,
             message     = messageBuffer
         }.ToByteArray()
     });
 }
 protected abstract void ProcessStatsMessage(EStreamStatsMessage type, byte[] messageBuffer);
 protected void SendStatsMessage(EStreamStatsMessage type, IMessage message)
 {
     SendStatsMessage(type, message.ToByteArray());
 }