Add extension library for WebSocket4Net usage.

This commit is contained in:
Christian Kratky
2019-05-18 09:48:44 +02:00
parent e96b66e9f8
commit d1a17314ef
15 changed files with 448 additions and 21 deletions
@@ -5,6 +5,8 @@ namespace MQTTnet.Client
{
public interface IMqttClientFactory
{
IMqttFactory UseClientAdapterFactory(IMqttClientAdapterFactory clientAdapterFactory);
IMqttClient CreateMqttClient();
IMqttClient CreateMqttClient(IMqttNetLogger logger);
+21 -13
View File
@@ -10,6 +10,8 @@ namespace MQTTnet
{
public class MqttFactory : IMqttFactory
{
private IMqttClientAdapterFactory _clientAdapterFactory = new MqttClientAdapterFactory();
public MqttFactory() : this(new MqttNetLogger())
{
}
@@ -21,6 +23,12 @@ namespace MQTTnet
public IMqttNetLogger DefaultLogger { get; }
public IMqttFactory UseClientAdapterFactory(IMqttClientAdapterFactory clientAdapterFactory)
{
_clientAdapterFactory = clientAdapterFactory ?? throw new ArgumentNullException(nameof(clientAdapterFactory));
return this;
}
public IMqttClient CreateMqttClient()
{
return CreateMqttClient(DefaultLogger);
@@ -30,22 +38,22 @@ namespace MQTTnet
{
if (logger == null) throw new ArgumentNullException(nameof(logger));
return new MqttClient(new MqttClientAdapterFactory(), logger);
return new MqttClient(_clientAdapterFactory, logger);
}
public IMqttClient CreateMqttClient(IMqttClientAdapterFactory adapterFactory)
public IMqttClient CreateMqttClient(IMqttClientAdapterFactory clientAdapterFactory)
{
if (adapterFactory == null) throw new ArgumentNullException(nameof(adapterFactory));
if (clientAdapterFactory == null) throw new ArgumentNullException(nameof(clientAdapterFactory));
return new MqttClient(adapterFactory, DefaultLogger);
return new MqttClient(clientAdapterFactory, DefaultLogger);
}
public IMqttClient CreateMqttClient(IMqttNetLogger logger, IMqttClientAdapterFactory adapterFactory)
public IMqttClient CreateMqttClient(IMqttNetLogger logger, IMqttClientAdapterFactory clientAdapterFactory)
{
if (logger == null) throw new ArgumentNullException(nameof(logger));
if (adapterFactory == null) throw new ArgumentNullException(nameof(adapterFactory));
if (clientAdapterFactory == null) throw new ArgumentNullException(nameof(clientAdapterFactory));
return new MqttClient(adapterFactory, logger);
return new MqttClient(clientAdapterFactory, logger);
}
public IMqttServer CreateMqttServer()
@@ -60,19 +68,19 @@ namespace MQTTnet
return CreateMqttServer(new List<IMqttServerAdapter> { new MqttTcpServerAdapter(logger.CreateChildLogger()) }, logger);
}
public IMqttServer CreateMqttServer(IEnumerable<IMqttServerAdapter> adapters, IMqttNetLogger logger)
public IMqttServer CreateMqttServer(IEnumerable<IMqttServerAdapter> serverAdapters, IMqttNetLogger logger)
{
if (adapters == null) throw new ArgumentNullException(nameof(adapters));
if (serverAdapters == null) throw new ArgumentNullException(nameof(serverAdapters));
if (logger == null) throw new ArgumentNullException(nameof(logger));
return new MqttServer(adapters, logger.CreateChildLogger());
return new MqttServer(serverAdapters, logger.CreateChildLogger());
}
public IMqttServer CreateMqttServer(IEnumerable<IMqttServerAdapter> adapters)
public IMqttServer CreateMqttServer(IEnumerable<IMqttServerAdapter> serverAdapters)
{
if (adapters == null) throw new ArgumentNullException(nameof(adapters));
if (serverAdapters == null) throw new ArgumentNullException(nameof(serverAdapters));
return new MqttServer(adapters, DefaultLogger.CreateChildLogger());
return new MqttServer(serverAdapters, DefaultLogger.CreateChildLogger());
}
}
}