mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-20 11:45:43 +08:00
Add extension library for WebSocket4Net usage.
This commit is contained in:
@@ -5,6 +5,8 @@ namespace MQTTnet.Client
|
||||
{
|
||||
public interface IMqttClientFactory
|
||||
{
|
||||
IMqttFactory UseClientAdapterFactory(IMqttClientAdapterFactory clientAdapterFactory);
|
||||
|
||||
IMqttClient CreateMqttClient();
|
||||
|
||||
IMqttClient CreateMqttClient(IMqttNetLogger logger);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user