I'm trying to publish a serialized message and sending the ContentType of that object type, so when I receive the message on the subscriber I know which type I can deserialize back to.
Here is the publish code:
public async Task PublishByTopicAsync<T>(string topic, T payload)
{
var payloadInBytes = _serializer.SerializeObject(payload);
var message = new MqttApplicationMessage()
{
Topic = topic,
PayloadFormatIndicator = MqttPayloadFormatIndicator.CharacterData,
ContentType = "json",//payload?.GetType().FullName,
Payload = payloadInBytes,
QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce
};
await _mqttClient.Value.Result.EnqueueAsync(message);
}
On the receiving side I get this:
Any idea how can I send the type of object on publishing, and receive it on the subscriber?
As described in the comments, PayloadFormatIndicator
is only available when both clients are connected to the broker with MQTT v5