protected override byte[] Encode <TMessage>(TMessage message) => Encoding.UTF8.GetBytes(JsonSerialization.Serialize(message).ToString());
protected override TMessage Deserialize <TMessage>(JObject message) => JsonSerialization.Deserialize <TMessage>(message);
protected override JObject Decode(byte[] message) => JsonSerialization.Deserialize(Encoding.UTF8.GetString(message));