|
- using System;
- using MQTTnet.Core.Adapter;
- using MQTTnet.Core.Channel;
- using MQTTnet.Core.Client;
- using MQTTnet.Core.Serializer;
- using MQTTnet.Implementations;
-
- namespace MQTTnet
- {
- public class MqttClientFactory
- {
- public IMqttClient CreateMqttClient(MqttClientOptions options)
- {
- if (options == null) throw new ArgumentNullException(nameof(options));
-
- return new MqttClient(options, new MqttChannelCommunicationAdapter(GetMqttCommunicationChannel(options), new MqttPacketSerializer()));
- }
-
- private static IMqttCommunicationChannel GetMqttCommunicationChannel(MqttClientOptions options)
- {
- switch (options.ConnectionType)
- {
- case MqttConnectionType.Tcp:
- case MqttConnectionType.Tls:
- var tcp = new MqttTcpChannel();
- return tcp;
- case MqttConnectionType.Ws:
- case MqttConnectionType.Wss:
- return new MqttWebSocketChannel();
-
- default:
- throw new NotSupportedException();
- }
- }
- }
- }
|