Remove dedicated V3 messages.

This commit is contained in:
Christian Kratky
2018-11-18 22:04:39 +01:00
parent 2fbb44ec66
commit 3db22eea51
9 changed files with 31 additions and 42 deletions
+2 -3
View File
@@ -9,7 +9,6 @@ using MQTTnet.Diagnostics;
using MQTTnet.Exceptions; using MQTTnet.Exceptions;
using MQTTnet.Internal; using MQTTnet.Internal;
using MQTTnet.Packets; using MQTTnet.Packets;
using MQTTnet.Packets.V3;
using MQTTnet.Protocol; using MQTTnet.Protocol;
namespace MQTTnet.Client namespace MQTTnet.Client
@@ -194,7 +193,7 @@ namespace MQTTnet.Client
_adapter = null; _adapter = null;
} }
private async Task<MqttV3ConnAckPacket> AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken) private async Task<MqttConnAckPacket> AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken)
{ {
var connectPacket = new MqttConnectPacket var connectPacket = new MqttConnectPacket
{ {
@@ -206,7 +205,7 @@ namespace MQTTnet.Client
WillMessage = willApplicationMessage WillMessage = willApplicationMessage
}; };
var response = await SendAndReceiveAsync<MqttV3ConnAckPacket>(connectPacket, cancellationToken).ConfigureAwait(false); var response = await SendAndReceiveAsync<MqttConnAckPacket>(connectPacket, cancellationToken).ConfigureAwait(false);
if (response.ConnectReturnCode != MqttConnectReturnCode.ConnectionAccepted) if (response.ConnectReturnCode != MqttConnectReturnCode.ConnectionAccepted)
{ {
throw new MqttConnectingFailedException(response.ConnectReturnCode); throw new MqttConnectingFailedException(response.ConnectReturnCode);
+15 -2
View File
@@ -1,6 +1,19 @@
namespace MQTTnet.Packets using MQTTnet.Protocol;
namespace MQTTnet.Packets
{ {
public abstract class MqttConnAckPacket : MqttBasePacket public class MqttConnAckPacket : MqttBasePacket
{ {
/// <summary>
/// Added in MQTTv3.1.1.
/// </summary>
public bool IsSessionPresent { get; set; }
public MqttConnectReturnCode ConnectReturnCode { get; set; }
public override string ToString()
{
return "ConnAck: [ConnectReturnCode=" + ConnectReturnCode + "] [IsSessionPresent=" + IsSessionPresent + "]";
}
} }
} }
@@ -4,7 +4,7 @@ namespace MQTTnet.Packets.Properties
{ {
public class MessageExpiryIntervalProperty : FourByteIntegerValue public class MessageExpiryIntervalProperty : FourByteIntegerValue
{ {
public MessageExpiryInterval(uint value) public MessageExpiryIntervalProperty(uint value)
: base((byte)PropertyID.MessageExpiryInterval, value) : base((byte)PropertyID.MessageExpiryInterval, value)
{ {
} }
@@ -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 + "]";
}
}
}
@@ -4,7 +4,6 @@ using MQTTnet.Protocol;
using System; using System;
using System.Linq; using System.Linq;
using MQTTnet.Adapter; using MQTTnet.Adapter;
using MQTTnet.Packets.V3;
namespace MQTTnet.Serializer namespace MQTTnet.Serializer
{ {
@@ -80,7 +79,7 @@ namespace MQTTnet.Serializer
switch (packet) switch (packet)
{ {
case MqttConnectPacket connectPacket: return SerializeConnectPacket(connectPacket, packetWriter); 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 MqttDisconnectPacket _: return SerializeEmptyPacket(MqttControlPacketType.Disconnect);
case MqttPingReqPacket _: return SerializeEmptyPacket(MqttControlPacketType.PingReq); case MqttPingReqPacket _: return SerializeEmptyPacket(MqttControlPacketType.PingReq);
case MqttPingRespPacket _: return SerializeEmptyPacket(MqttControlPacketType.PingResp); case MqttPingRespPacket _: return SerializeEmptyPacket(MqttControlPacketType.PingResp);
@@ -285,7 +284,7 @@ namespace MQTTnet.Serializer
{ {
ThrowIfBodyIsEmpty(body); ThrowIfBodyIsEmpty(body);
var packet = new MqttV3ConnAckPacket(); var packet = new MqttConnAckPacket();
body.ReadByte(); // Reserved. body.ReadByte(); // Reserved.
packet.ConnectReturnCode = (MqttConnectReturnCode)body.ReadByte(); packet.ConnectReturnCode = (MqttConnectReturnCode)body.ReadByte();
@@ -379,7 +378,7 @@ namespace MQTTnet.Serializer
return MqttPacketWriter.BuildFixedHeader(MqttControlPacketType.Connect); 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(0); // Reserved.
packetWriter.Write((byte)packet.ConnectReturnCode); packetWriter.Write((byte)packet.ConnectReturnCode);
@@ -1,6 +1,5 @@
using MQTTnet.Exceptions; using MQTTnet.Exceptions;
using MQTTnet.Packets; using MQTTnet.Packets;
using MQTTnet.Packets.V3;
using MQTTnet.Protocol; using MQTTnet.Protocol;
namespace MQTTnet.Serializer namespace MQTTnet.Serializer
@@ -69,7 +68,7 @@ namespace MQTTnet.Serializer
return MqttPacketWriter.BuildFixedHeader(MqttControlPacketType.Connect); return MqttPacketWriter.BuildFixedHeader(MqttControlPacketType.Connect);
} }
protected override byte SerializeConnAckPacket(MqttV3ConnAckPacket packet, MqttPacketWriter packetWriter) protected override byte SerializeConnAckPacket(MqttConnAckPacket packet, MqttPacketWriter packetWriter)
{ {
byte connectAcknowledgeFlags = 0x0; byte connectAcknowledgeFlags = 0x0;
if (packet.IsSessionPresent) if (packet.IsSessionPresent)
@@ -87,7 +86,7 @@ namespace MQTTnet.Serializer
{ {
ThrowIfBodyIsEmpty(body); ThrowIfBodyIsEmpty(body);
var packet = new MqttV3ConnAckPacket(); var packet = new MqttConnAckPacket();
var acknowledgeFlags = body.ReadByte(); var acknowledgeFlags = body.ReadByte();
@@ -9,7 +9,6 @@ using MQTTnet.Diagnostics;
using MQTTnet.Exceptions; using MQTTnet.Exceptions;
using MQTTnet.Internal; using MQTTnet.Internal;
using MQTTnet.Packets; using MQTTnet.Packets;
using MQTTnet.Packets.V3;
using MQTTnet.Protocol; using MQTTnet.Protocol;
namespace MQTTnet.Server namespace MQTTnet.Server
@@ -229,7 +228,7 @@ namespace MQTTnet.Server
if (connectReturnCode != MqttConnectReturnCode.ConnectionAccepted) if (connectReturnCode != MqttConnectReturnCode.ConnectionAccepted)
{ {
await clientAdapter.SendPacketAsync( await clientAdapter.SendPacketAsync(
new MqttV3ConnAckPacket new MqttConnAckPacket
{ {
ConnectReturnCode = connectReturnCode ConnectReturnCode = connectReturnCode
}, },
@@ -242,7 +241,7 @@ namespace MQTTnet.Server
var clientSession = result.Session; var clientSession = result.Session;
await clientAdapter.SendPacketAsync( await clientAdapter.SendPacketAsync(
new MqttV3ConnAckPacket new MqttConnAckPacket
{ {
ConnectReturnCode = connectReturnCode, ConnectReturnCode = connectReturnCode,
IsSessionPresent = result.IsExistingSession IsSessionPresent = result.IsExistingSession
+2 -5
View File
@@ -8,7 +8,6 @@ using MQTTnet.Client;
using MQTTnet.Diagnostics; using MQTTnet.Diagnostics;
using MQTTnet.Exceptions; using MQTTnet.Exceptions;
using MQTTnet.Packets; using MQTTnet.Packets;
using MQTTnet.Packets.V3;
namespace MQTTnet.Core.Tests namespace MQTTnet.Core.Tests
{ {
@@ -51,11 +50,9 @@ namespace MQTTnet.Core.Tests
Task.Run(async () => { Task.Run(async () => {
var connect = await channel2.ReceivePacketAsync(TimeSpan.Zero, CancellationToken.None); 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 fake = new TestMqttCommunicationAdapterFactory(channel);
var client = new MqttClient(fake, new MqttNetLogger()); var client = new MqttClient(fake, new MqttNetLogger());
@@ -7,7 +7,6 @@ using Microsoft.VisualStudio.TestTools.UnitTesting;
using MQTTnet.Adapter; using MQTTnet.Adapter;
using MQTTnet.Internal; using MQTTnet.Internal;
using MQTTnet.Packets; using MQTTnet.Packets;
using MQTTnet.Packets.V3;
using MQTTnet.Protocol; using MQTTnet.Protocol;
using MQTTnet.Serializer; using MQTTnet.Serializer;
@@ -108,7 +107,7 @@ namespace MQTTnet.Core.Tests
[TestMethod] [TestMethod]
public void SerializeV311_MqttConnAckPacket() public void SerializeV311_MqttConnAckPacket()
{ {
var p = new MqttV3ConnAckPacket var p = new MqttConnAckPacket
{ {
IsSessionPresent = true, IsSessionPresent = true,
ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized
@@ -120,7 +119,7 @@ namespace MQTTnet.Core.Tests
[TestMethod] [TestMethod]
public void SerializeV310_MqttConnAckPacket() public void SerializeV310_MqttConnAckPacket()
{ {
var p = new MqttV3ConnAckPacket var p = new MqttConnAckPacket
{ {
ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized
}; };
@@ -131,7 +130,7 @@ namespace MQTTnet.Core.Tests
[TestMethod] [TestMethod]
public void DeserializeV311_MqttConnAckPacket() public void DeserializeV311_MqttConnAckPacket()
{ {
var p = new MqttV3ConnAckPacket var p = new MqttConnAckPacket
{ {
IsSessionPresent = true, IsSessionPresent = true,
ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized
@@ -143,7 +142,7 @@ namespace MQTTnet.Core.Tests
[TestMethod] [TestMethod]
public void DeserializeV310_MqttConnAckPacket() public void DeserializeV310_MqttConnAckPacket()
{ {
var p = new MqttV3ConnAckPacket var p = new MqttConnAckPacket
{ {
ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized ConnectReturnCode = MqttConnectReturnCode.ConnectionRefusedNotAuthorized
}; };