Expose PacketIdentifier in PublishResult.

This commit is contained in:
Christian Kratky
2019-04-23 14:47:42 +02:00
parent e6cf23aebd
commit d4c6fb44c9
4 changed files with 14 additions and 9 deletions
+1
View File
@@ -25,6 +25,7 @@
* [Client] Fixed issues in QoS 2 handling which leads to message loss.
* [Client] Replaced all events with proper async compatible handlers (BREAKING CHANGE!).
* [Client] Added more configuration values to TCP endpoint options.
* [Client] Added used PacketIdentifier to publish result.
* [ManagedClient] Replaced all events with proper async compatible handlers (BREAKING CHANGE!).
* [ManagedClient] The log ID is now propagated to the internal client (thanks to @vbBerni).
* [ManagedClient] Added validation of topics before publishing.
@@ -6,6 +6,8 @@ namespace MQTTnet.Client.Publishing
{
public class MqttClientPublishResult
{
public ushort? PacketIdentifier { get; set; }
public MqttClientPublishReasonCode ReasonCode { get; set; } = MqttClientPublishReasonCode.Success;
public string ReasonString { get; set; }
@@ -199,6 +199,7 @@ namespace MQTTnet.Formatter.V3
{
return new MqttClientPublishResult
{
PacketIdentifier = pubAckPacket?.PacketIdentifier,
ReasonCode = MqttClientPublishReasonCode.Success
};
}
@@ -189,21 +189,22 @@ namespace MQTTnet.Formatter.V5
public MqttClientPublishResult CreatePublishResult(MqttPubAckPacket pubAckPacket)
{
var reasonCode = MqttClientPublishReasonCode.Success;
if (pubAckPacket != null)
{
// QoS 0 has no response. So we treat it as a success always.
reasonCode = (MqttClientPublishReasonCode)pubAckPacket.ReasonCode;
}
var result = new MqttClientPublishResult
{
// Both enums share the same values.
ReasonCode = reasonCode,
ReasonCode = MqttClientPublishReasonCode.Success,
ReasonString = pubAckPacket?.Properties?.ReasonString,
UserProperties = pubAckPacket?.Properties?.UserProperties
};
if (pubAckPacket != null)
{
// QoS 0 has no response. So we treat it as a success always.
// Both enums have the same values. So it can be easily converted.
result.ReasonCode = (MqttClientPublishReasonCode)pubAckPacket.ReasonCode;
result.PacketIdentifier = pubAckPacket.PacketIdentifier;
}
return result;
}