Add support for chaning passwords

This commit is contained in:
Christian Kratky
2017-10-25 19:50:37 +02:00
parent c257e5cb77
commit a9b394401b
15 changed files with 52 additions and 46 deletions
+3 -5
View File
@@ -3,20 +3,18 @@ using MQTTnet.Core.Serializer;
namespace MQTTnet.Core.Client
{
public abstract class BaseMqttClientOptions : IMqttClientOptions
public class MqttClientOptions : IMqttClientOptions
{
public MqttClientTlsOptions TlsOptions { get; set; } = new MqttClientTlsOptions();
public MqttApplicationMessage WillMessage { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string ClientId { get; set; } = Guid.NewGuid().ToString("N");
public bool CleanSession { get; set; } = true;
public IMqttClientCredentials Credentials { get; set; } = new MqttClientCredentials();
public TimeSpan KeepAlivePeriod { get; set; } = TimeSpan.FromSeconds(5);
public TimeSpan DefaultCommunicationTimeout { get; set; } = TimeSpan.FromSeconds(10);
@@ -0,0 +1,8 @@
namespace MQTTnet.Core.Client
{
public interface IMqttClientCredentials
{
string Password { get; }
string Username { get; }
}
}
+4 -4
View File
@@ -5,14 +5,14 @@ namespace MQTTnet.Core.Client
{
public interface IMqttClientOptions
{
bool CleanSession { get; }
string ClientId { get; }
bool CleanSession { get; }
MqttApplicationMessage WillMessage { get; }
IMqttClientCredentials Credentials { get; }
TimeSpan DefaultCommunicationTimeout { get; }
TimeSpan KeepAlivePeriod { get; }
string Password { get; }
MqttProtocolVersion ProtocolVersion { get; }
MqttClientTlsOptions TlsOptions { get; }
string UserName { get; }
MqttApplicationMessage WillMessage { get; }
}
}
+2 -2
View File
@@ -186,8 +186,8 @@ namespace MQTTnet.Core.Client
var connectPacket = new MqttConnectPacket
{
ClientId = _options.ClientId,
Username = _options.UserName,
Password = _options.Password,
Username = _options.Credentials?.Username,
Password = _options.Credentials?.Password,
CleanSession = _options.CleanSession,
KeepAlivePeriod = (ushort)_options.KeepAlivePeriod.TotalSeconds,
WillMessage = willApplicationMessage
@@ -0,0 +1,9 @@
namespace MQTTnet.Core.Client
{
public class MqttClientCredentials : IMqttClientCredentials
{
public string Username { get; set; }
public string Password { get; set; }
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
namespace MQTTnet.Core.Client
{
public class MqttClientTcpOptions : BaseMqttClientOptions
public class MqttClientTcpOptions : MqttClientOptions
{
public string Server { get; set; }
@@ -3,7 +3,7 @@ using System.Net;
namespace MQTTnet.Core.Client
{
public class MqttClientWebSocketOptions : BaseMqttClientOptions
public class MqttClientWebSocketOptions : MqttClientOptions
{
public string Uri { get; set; }
@@ -10,7 +10,5 @@ namespace MQTTnet.Core.ManagedClient
TimeSpan AutoReconnectDelay { get; }
IManagedMqttClientStorage Storage { get; }
Func<IManagedMqttClientOptions, string> PasswordProvider { get; }
}
}
@@ -6,7 +6,6 @@ using System.Threading;
using System.Threading.Tasks;
using MQTTnet.Core.Client;
using MQTTnet.Core.Exceptions;
using MQTTnet.Core.Packets;
using MQTTnet.Core.Protocol;
using Microsoft.Extensions.Logging;
@@ -277,7 +276,6 @@ namespace MQTTnet.Core.ManagedClient
try
{
_options.PasswordProvider?.Invoke(_options);
await _mqttClient.ConnectAsync(_options.ClientOptions).ConfigureAwait(false);
return ReconnectionResult.Reconnected;
}
@@ -10,8 +10,5 @@ namespace MQTTnet.Core.ManagedClient
public TimeSpan AutoReconnectDelay { get; set; } = TimeSpan.FromSeconds(5);
public IManagedMqttClientStorage Storage { get; set; }
public Func<IManagedMqttClientOptions, string> PasswordProvider { get; set; }
}
}