diff --git a/Source/MQTTnet/Client/Disconnecting/MqttClientDisconnectedEventArgs.cs b/Source/MQTTnet/Client/Disconnecting/MqttClientDisconnectedEventArgs.cs index 24b45345..5e2317cf 100644 --- a/Source/MQTTnet/Client/Disconnecting/MqttClientDisconnectedEventArgs.cs +++ b/Source/MQTTnet/Client/Disconnecting/MqttClientDisconnectedEventArgs.cs @@ -3,14 +3,16 @@ using MQTTnet.Client.Connecting; namespace MQTTnet.Client.Disconnecting { - public class MqttClientDisconnectedEventArgs : EventArgs + public sealed class MqttClientDisconnectedEventArgs : EventArgs { - public MqttClientDisconnectedEventArgs(bool clientWasConnected, Exception exception, MqttClientAuthenticateResult authenticateResult, MqttClientDisconnectReason reasonCode) + public MqttClientDisconnectedEventArgs(bool clientWasConnected, Exception exception, MqttClientAuthenticateResult authenticateResult, MqttClientDisconnectReason reason) { ClientWasConnected = clientWasConnected; Exception = exception; AuthenticateResult = authenticateResult; - ReasonCode = reasonCode; + Reason = reason; + + ReasonCode = reason; } public bool ClientWasConnected { get; } @@ -19,6 +21,9 @@ namespace MQTTnet.Client.Disconnecting public MqttClientAuthenticateResult AuthenticateResult { get; } - public MqttClientDisconnectReason ReasonCode { get; set; } = MqttClientDisconnectReason.NormalDisconnection; + public MqttClientDisconnectReason Reason { get; set; } + + [Obsolete("Please use 'Reason' instead. This property will be removed in the future!")] + public MqttClientDisconnectReason ReasonCode { get; set; } } } diff --git a/Tests/MQTTnet.Core.Tests/Server_Tests.cs b/Tests/MQTTnet.Core.Tests/Server_Tests.cs index 71c819d1..4c00af6a 100644 --- a/Tests/MQTTnet.Core.Tests/Server_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/Server_Tests.cs @@ -471,11 +471,19 @@ namespace MQTTnet.Tests var client1 = await testEnvironment.ConnectClientAsync(options); await Task.Delay(500); + MqttClientDisconnectReason disconnectReason = MqttClientDisconnectReason.NormalDisconnection; + client1.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(c => + { + disconnectReason = c.Reason; + }); + var client2 = await testEnvironment.ConnectClientAsync(options); await Task.Delay(500); Assert.IsFalse(client1.IsConnected); Assert.IsTrue(client2.IsConnected); + + Assert.AreEqual(MqttClientDisconnectReason.SessionTakenOver, disconnectReason); } }