public override int Encode(byte[] buffer, int offset)
{
if (!ClientEngine.SupportsFastPeer)
throw new ProtocolException("Message encoding not supported");
var written = offset;
written += Write(buffer, written, MessageLength);
written += Write(buffer, written, MessageId);
return CheckWritten(written - offset);
}