mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-29 09:52:55 +08:00
Expose PacketIdentifier in PublishResult.
This commit is contained in:
@@ -25,6 +25,7 @@
|
|||||||
* [Client] Fixed issues in QoS 2 handling which leads to message loss.
|
* [Client] Fixed issues in QoS 2 handling which leads to message loss.
|
||||||
* [Client] Replaced all events with proper async compatible handlers (BREAKING CHANGE!).
|
* [Client] Replaced all events with proper async compatible handlers (BREAKING CHANGE!).
|
||||||
* [Client] Added more configuration values to TCP endpoint options.
|
* [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] 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] The log ID is now propagated to the internal client (thanks to @vbBerni).
|
||||||
* [ManagedClient] Added validation of topics before publishing.
|
* [ManagedClient] Added validation of topics before publishing.
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ namespace MQTTnet.Client.Publishing
|
|||||||
{
|
{
|
||||||
public class MqttClientPublishResult
|
public class MqttClientPublishResult
|
||||||
{
|
{
|
||||||
|
public ushort? PacketIdentifier { get; set; }
|
||||||
|
|
||||||
public MqttClientPublishReasonCode ReasonCode { get; set; } = MqttClientPublishReasonCode.Success;
|
public MqttClientPublishReasonCode ReasonCode { get; set; } = MqttClientPublishReasonCode.Success;
|
||||||
|
|
||||||
public string ReasonString { get; set; }
|
public string ReasonString { get; set; }
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ namespace MQTTnet.Formatter.V3
|
|||||||
{
|
{
|
||||||
return new MqttClientPublishResult
|
return new MqttClientPublishResult
|
||||||
{
|
{
|
||||||
|
PacketIdentifier = pubAckPacket?.PacketIdentifier,
|
||||||
ReasonCode = MqttClientPublishReasonCode.Success
|
ReasonCode = MqttClientPublishReasonCode.Success
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,21 +189,22 @@ namespace MQTTnet.Formatter.V5
|
|||||||
|
|
||||||
public MqttClientPublishResult CreatePublishResult(MqttPubAckPacket pubAckPacket)
|
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
|
var result = new MqttClientPublishResult
|
||||||
{
|
{
|
||||||
// Both enums share the same values.
|
ReasonCode = MqttClientPublishReasonCode.Success,
|
||||||
ReasonCode = reasonCode,
|
|
||||||
ReasonString = pubAckPacket?.Properties?.ReasonString,
|
ReasonString = pubAckPacket?.Properties?.ReasonString,
|
||||||
UserProperties = pubAckPacket?.Properties?.UserProperties
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user