void _dplay_GotMessage(Session sess, byte[] message) { switch (message[0]) { // Decompress the message if it is compressed. case FLMsgType.MsgTypeCompressed: using (var ms = new MemoryStream(message, 0, message.Length)) { // TODO: it should be slow using (var zs = new ZlibStream(ms, CompressionMode.Decompress)) { var buf = new byte[32767]; int msgLength = zs.Read(buf, 0, buf.Length); Array.Resize(ref buf, msgLength); message = buf; } } break; case 0x01: return; // Otherwise dispatch the message to the controller. } Logger.AddLog(LogType.FLMsg, "c>s client={0} rx={1}", sess.Client, message); _pump.MessageFromClient(sess.DPlayID, message); }