From 3db22eea51c8b5e42af3d650709b7bb4446f81d1 Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Sun, 18 Nov 2018 22:04:39 +0100 Subject: [PATCH] Remove dedicated V3 messages. --- Source/MQTTnet/Client/MqttClient.cs | 5 ++--- Source/MQTTnet/Packets/MqttConnAckPacket.cs | 17 +++++++++++++++-- .../Properties/MessageExpiryIntervalProperty.cs | 2 +- .../MQTTnet/Packets/V3/MqttV3ConnAckPacket.cs | 16 ---------------- .../Serializer/MqttV310PacketSerializer.cs | 7 +++---- .../Serializer/MqttV311PacketSerializer.cs | 5 ++--- .../MQTTnet/Server/MqttClientSessionsManager.cs | 5 ++--- Tests/MQTTnet.Core.Tests/MqttClientTests.cs | 7 ++----- .../MqttPacketSerializerTests.cs | 9 ++++----- 9 files changed, 31 insertions(+), 42 deletions(-) delete mode 100644 Source/MQTTnet/Packets/V3/MqttV3ConnAckPacket.cs diff --git a/Source/MQTTnet/Client/MqttClient.cs b/Source/MQTTnet/Client/MqttClient.cs index 9e073cbb..c5c2d638 100644 --- a/Source/MQTTnet/Client/MqttClient.cs +++ b/Source/MQTTnet/Client/MqttClient.cs @@ -9,7 +9,6 @@ using MQTTnet.Diagnostics; using MQTTnet.Exceptions; using MQTTnet.Internal; using MQTTnet.Packets; -using MQTTnet.Packets.V3; using MQTTnet.Protocol; namespace MQTTnet.Client @@ -194,7 +193,7 @@ namespace MQTTnet.Client _adapter = null; } - private async Task AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken) + private async Task AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken) { var connectPacket = new MqttConnectPacket { @@ -206,7 +205,7 @@ namespace MQTTnet.Client WillMessage = willApplicationMessage }; - var response = await SendAndReceiveAsync(connectPacket, cancellationToken).ConfigureAwait(false); + var response = await SendAndReceiveAsync(connectPacket, cancellationToken).ConfigureAwait(false); if (response.ConnectReturnCode != MqttConnectReturnCode.ConnectionAccepted) { throw new MqttConnectingFailedException(response.ConnectReturnCode); diff --git a/Source/MQTTnet/Packets/MqttConnAckPacket.cs b/Source/MQTTnet/Packets/MqttConnAckPacket.cs index a0f69fdd..c4532167 100644 --- a/Source/MQTTnet/Packets/MqttConnAckPacket.cs +++ b/Source/MQTTnet/Packets/MqttConnAckPacket.cs @@ -1,6 +1,19 @@ -namespace MQTTnet.Packets +using MQTTnet.Protocol; + +namespace MQTTnet.Packets { - public abstract class MqttConnAckPacket : MqttBasePacket + public class MqttConnAckPacket : MqttBasePacket { + /// + /// Added in MQTTv3.1.1. + /// + public bool IsSessionPresent { get; set; } + + public MqttConnectReturnCode ConnectReturnCode { get; set; } + + public override string ToString() + { + return "ConnAck: [ConnectReturnCode=" + ConnectReturnCode + "] [IsSessionPresent=" + IsSessionPresent + "]"; + } } } diff --git a/Source/MQTTnet/Packets/Properties/MessageExpiryIntervalProperty.cs b/Source/MQTTnet/Packets/Properties/MessageExpiryIntervalProperty.cs index 7062e8b1..3526935d 100644 --- a/Source/MQTTnet/Packets/Properties/MessageExpiryIntervalProperty.cs +++ b/Source/MQTTnet/Packets/Properties/MessageExpiryIntervalProperty.cs @@ -4,7 +4,7 @@ namespace MQTTnet.Packets.Properties { public class MessageExpiryIntervalProperty : FourByteIntegerValue { - public MessageExpiryInterval(uint value) + public MessageExpiryIntervalProperty(uint value) : base((byte)PropertyID.MessageExpiryInterval, value) { } diff --git a/Source/MQTTnet/Packets/V3/MqttV3ConnAckPacket.cs b/Source/MQTTnet/Packets/V3/MqttV3ConnAckPacket.cs deleted file mode 100644 index 3e858ec7..00000000 --- a/Source/MQTTnet/Packets/V3/MqttV3ConnAckPacket.cs +++ /dev/null @@ -1,16 +0,0 @@ -using MQTTnet.Protocol; - -namespace MQTTnet.Packets.V3 -{ - public class MqttV3ConnAckPacket : MqttBasePacket - { - public bool IsSessionPresent { get; set; } - - public MqttConnectReturnCode ConnectReturnCode { get; set; } - - public override string ToString() - { - return "ConnAck: [ConnectReturnCode=" + ConnectReturnCode + "] [IsSessionPresent=" + IsSessionPresent + "]"; - } - } -} diff --git a/Source/MQTTnet/Serializer/MqttV310PacketSerializer.cs b/Source/MQTTnet/Serializer/MqttV310PacketSerializer.cs index 9d36c9e2..74c96a90 100644 --- a/Source/MQTTnet/Serializer/MqttV310PacketSerializer.cs +++ b/Source/MQTTnet/Serializer/MqttV310PacketSerializer.cs @@ -4,7 +4,6 @@ using MQTTnet.Protocol; using System; using System.Linq; using MQTTnet.Adapter; -using MQTTnet.Packets.V3; namespace MQTTnet.Serializer { @@ -80,7 +79,7 @@ namespace MQTTnet.Serializer switch (packet) { case MqttConnectPacket connectPacket: return SerializeConnectPacket(connectPacket, packetWriter); - case MqttV3ConnAckPacket connAckPacket: return SerializeConnAckPacket(connAckPacket, packetWriter); + case MqttConnAckPacket connAckPacket: return SerializeConnAckPacket(connAckPacket, packetWriter); case MqttDisconnectPacket _: return SerializeEmptyPacket(MqttControlPacketType.Disconnect); case MqttPingReqPacket _: return SerializeEmptyPacket(MqttControlPacketType.PingReq); case MqttPingRespPacket _: return SerializeEmptyPacket(MqttControlPacketType.PingResp); @@ -285,7 +284,7 @@ namespace MQTTnet.Serializer { ThrowIfBodyIsEmpty(body); - var packet = new MqttV3ConnAckPacket(); + var packet = new MqttConnAckPacket(); body.ReadByte(); // Reserved. packet.ConnectReturnCode = (MqttConnectReturnCode)body.ReadByte(); @@ -379,7 +378,7 @@ namespace MQTTnet.Serializer return MqttPacketWriter.BuildFixedHeader(MqttControlPacketType.Connect); } - protected virtual byte SerializeConnAckPacket(MqttV3ConnAckPacket packet, MqttPacketWriter packetWriter) + protected virtual byte SerializeConnAckPacket(MqttConnAckPacket packet, MqttPacketWriter packetWriter) { packetWriter.Write(0); // Reserved. packetWriter.Write((byte)packet.ConnectReturnCode); diff --git a/Source/MQTTnet/Serializer/MqttV311PacketSerializer.cs b/Source/MQTTnet/Serializer/MqttV311PacketSerializer.cs index f124c7d1..c70629e5 100644 --- a/Source/MQTTnet/Serializer/MqttV311PacketSerializer.cs +++ b/Source/MQTTnet/Serializer/MqttV311PacketSerializer.cs @@ -1,6 +1,5 @@ using MQTTnet.Exceptions; using MQTTnet.Packets; -using MQTTnet.Packets.V3; using MQTTnet.Protocol; namespace MQTTnet.Serializer @@ -69,7 +68,7 @@ namespace MQTTnet.Serializer return MqttPacketWriter.BuildFixedHeader(MqttControlPacketType.Connect); } - protected override byte SerializeConnAckPacket(MqttV3ConnAckPacket packet, MqttPacketWriter packetWriter) + protected override byte SerializeConnAckPacket(MqttConnAckPacket packet, MqttPacketWriter packetWriter) { byte connectAcknowledgeFlags = 0x0; if (packet.IsSessionPresent) @@ -87,7 +86,7 @@ namespace MQTTnet.Serializer { ThrowIfBodyIsEmpty(body); - var packet = new MqttV3ConnAckPacket(); + var packet = new MqttConnAckPacket(); var acknowledgeFlags = body.ReadByte(); diff --git a/Source/MQTTnet/Server/MqttClientSessionsManager.cs b/Source/MQTTnet/Server/MqttClientSessionsManager.cs index a06e969e..7c55109f 100644 --- a/Source/MQTTnet/Server/MqttClientSessionsManager.cs +++ b/Source/MQTTnet/Server/MqttClientSessionsManager.cs @@ -9,7 +9,6 @@ using MQTTnet.Diagnostics; using MQTTnet.Exceptions; using MQTTnet.Internal; using MQTTnet.Packets; -using MQTTnet.Packets.V3; using MQTTnet.Protocol; namespace MQTTnet.Server @@ -229,7 +228,7 @@ namespace MQTTnet.Server if (connectReturnCode != MqttConnectReturnCode.ConnectionAccepted) { await clientAdapter.SendPacketAsync( - new MqttV3ConnAckPacket + new MqttConnAckPacket { ConnectReturnCode = connectReturnCode }, @@ -242,7 +241,7 @@ namespace MQTTnet.Server var clientSession = result.Session; await clientAdapter.SendPacketAsync( - new MqttV3ConnAckPacket + new MqttConnAckPacket { ConnectReturnCode = connectReturnCode, IsSessionPresent = result.IsExistingSession diff --git a/Tests/MQTTnet.Core.Tests/MqttClientTests.cs b/Tests/MQTTnet.Core.Tests/MqttClientTests.cs index 12131a27..414f2538 100644 --- a/Tests/MQTTnet.Core.Tests/MqttClientTests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttClientTests.cs @@ -8,7 +8,6 @@ using MQTTnet.Client; using MQTTnet.Diagnostics; using MQTTnet.Exceptions; using MQTTnet.Packets; -using MQTTnet.Packets.V3; namespace MQTTnet.Core.Tests { @@ -51,11 +50,9 @@ namespace MQTTnet.Core.Tests Task.Run(async () => { var connect = await channel2.ReceivePacketAsync(TimeSpan.Zero, CancellationToken.None); - await channel2.SendPacketAsync(new MqttV3ConnAckPacket() { ConnectReturnCode = Protocol.MqttConnectReturnCode.ConnectionRefusedNotAuthorized }, CancellationToken.None); + await channel2.SendPacketAsync(new MqttConnAckPacket { ConnectReturnCode = Protocol.MqttConnectReturnCode.ConnectionRefusedNotAuthorized }, CancellationToken.None); }); - - - + var fake = new TestMqttCommunicationAdapterFactory(channel); var client = new MqttClient(fake, new MqttNetLogger()); diff --git a/Tests/MQTTnet.Core.Tests/MqttPacketSerializerTests.cs b/Tests/MQTTnet.Core.Tests/MqttPacketSerializerTests.cs index 5df4b69b..59b68496 100644 --- a/Tests/MQTTnet.Core.Tests/MqttPacketSerializerTests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttPacketSerializerTests.cs @@ -7,7 +7,6 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using MQTTnet.Adapter; using MQTTnet.Internal; using MQTTnet.Packets; -using MQTTnet.Packets.V3; using MQTTnet.Protocol; using MQTTnet.Serializer; @@ -108,7 +107,7 @@ namespace MQTTnet.Core.Tests [TestMethod] public void SerializeV311_MqttConnAckPacket() { - var p = new MqttV3ConnAckPacket + var p = new MqttConnAckPacket { IsSessionPresent = true, ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized @@ -120,7 +119,7 @@ namespace MQTTnet.Core.Tests [TestMethod] public void SerializeV310_MqttConnAckPacket() { - var p = new MqttV3ConnAckPacket + var p = new MqttConnAckPacket { ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized }; @@ -131,7 +130,7 @@ namespace MQTTnet.Core.Tests [TestMethod] public void DeserializeV311_MqttConnAckPacket() { - var p = new MqttV3ConnAckPacket + var p = new MqttConnAckPacket { IsSessionPresent = true, ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized @@ -143,7 +142,7 @@ namespace MQTTnet.Core.Tests [TestMethod] public void DeserializeV310_MqttConnAckPacket() { - var p = new MqttV3ConnAckPacket + var p = new MqttConnAckPacket { ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized };