Exemple #1
0
        public ManagedMqttClient(IMqttClient mqttClient, IMqttNetLogger logger)
        {
            _mqttClient    = mqttClient ?? throw new ArgumentNullException(nameof(mqttClient));
            InternalClient = mqttClient;

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.CreateScopedLogger(nameof(ManagedMqttClient));
        }
Exemple #2
0
        public MqttServer(IEnumerable <IMqttServerAdapter> adapters, IMqttNetLogger logger)
        {
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            if (adapters == null)
            {
                throw new ArgumentNullException(nameof(adapters));
            }

            _adapters = adapters.ToList();
        }
Exemple #3
0
        public IMqttServer CreateMqttServer(IMqttNetLogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            var serverAdapters = DefaultServerAdapters.Select(a => a.Invoke(this));

            return(CreateMqttServer(serverAdapters, logger));
        }
Exemple #4
0
        public IMqttServer CreateMqttServer(IMqttNetLogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            return(CreateMqttServer(new List <IMqttServerAdapter> {
                new MqttTcpServerAdapter(logger.CreateChildLogger())
            }, logger));
        }
Exemple #5
0
        // TODO: Get rid of the logger here!
        public Task Start(IMqttServerOptions options, IMqttNetLogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.CreateScopedLogger(nameof(MqttRetainedMessagesManager));

            _options = options ?? throw new ArgumentNullException(nameof(options));
            return(PlatformAbstractionLayer.CompletedTask);
        }
        public ManagedMqttClient(IMqttClient mqttClient, IMqttNetLogger logger)
        {
            InternalClient = mqttClient ?? throw new ArgumentNullException(nameof(mqttClient));

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _logger = logger.WithSource(nameof(ManagedMqttClient));
        }
        public MqttClientKeepAliveMonitor(string clientId, Func <Task> keepAliveElapsedCallback, IMqttNetLogger logger)
        {
            _clientId = clientId ?? throw new ArgumentNullException(nameof(clientId));
            _keepAliveElapsedCallback = keepAliveElapsedCallback ?? throw new ArgumentNullException(nameof(keepAliveElapsedCallback));

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.CreateChildLogger(nameof(MqttClientKeepAliveMonitor));
        }
Exemple #8
0
 public CollectionMqttClient(IMqttClientAdapterFactory factory,
                             IMqttNetLogger mqttLogger,
                             ISendProtocolFactory sendProtocolFactory,
                             IOptionsMonitor <Setting> kj1012Setting,
                             ILogger <CollectionMqttClient> logger) : base(factory, mqttLogger)
 {
     _sendProtocolFactory = sendProtocolFactory;
     _logger                     = logger;
     _kj1012Setting              = kj1012Setting;
     Connected                  += MqttClient_Connected;
     Disconnected               += MqttClient_Disconnected;
     ApplicationMessageReceived += MqttClient_ApplicationMessageReceived;;
 }
Exemple #9
0
        public IMqttClient CreateMqttClient(IMqttNetLogger logger, IMqttClientAdapterFactory clientAdapterFactory)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (clientAdapterFactory == null)
            {
                throw new ArgumentNullException(nameof(clientAdapterFactory));
            }

            return(new MqttClient(clientAdapterFactory, logger));
        }
        /// <summary>
        /// Crate a <see cref="IRxMqttClient"/> from the factory.
        /// </summary>
        /// <param name="factory">The factory to use.</param>
        /// <param name="logger">The mqtt net logger to use.</param>
        /// <returns>The <see cref="IRxMqttClient"/>.</returns>
        public static IRxMqttClient CreateRxMqttClient(this IMqttFactory factory, IMqttNetLogger logger)
        {
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            return(new RxMqttClient(factory.CreateManagedMqttClient(logger), logger));
        }
Exemple #11
0
        public MqttChannelAdapter(IMqttChannel channel, MqttPacketFormatterAdapter packetFormatterAdapter, IMqttNetLogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _channel = channel ?? throw new ArgumentNullException(nameof(channel));
            PacketFormatterAdapter = packetFormatterAdapter ?? throw new ArgumentNullException(nameof(packetFormatterAdapter));

            _packetReader = new MqttPacketReader(_channel);

            _logger = logger.CreateChildLogger(nameof(MqttChannelAdapter));
        }
Exemple #12
0
        public LowLevelMqttClient(IMqttClientAdapterFactory clientAdapterFactory, IMqttNetLogger logger)
        {
            if (clientAdapterFactory is null)
            {
                throw new ArgumentNullException(nameof(clientAdapterFactory));
            }
            if (logger is null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _clientAdapterFactory = clientAdapterFactory;
            _logger = logger.CreateChildLogger(nameof(LowLevelMqttClient));
        }
Exemple #13
0
        public MqttClientSession(string clientId, IDictionary <object, object> items, MqttServerEventDispatcher eventDispatcher, IMqttServerOptions serverOptions, IMqttRetainedMessagesManager retainedMessagesManager, IMqttNetLogger logger)
        {
            ClientId = clientId ?? throw new ArgumentNullException(nameof(clientId));
            Items    = items ?? throw new ArgumentNullException(nameof(items));
            _retainedMessagesManager = retainedMessagesManager ?? throw new ArgumentNullException(nameof(retainedMessagesManager));
            SubscriptionsManager     = new MqttClientSubscriptionsManager(this, eventDispatcher, serverOptions);
            ApplicationMessagesQueue = new MqttClientSessionApplicationMessagesQueue(serverOptions);

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.CreateChildLogger(nameof(MqttClientSession));
        }
Exemple #14
0
        public MqttClientSession(
            string clientId,
            IMqttServerOptions options,
            MqttRetainedMessagesManager retainedMessagesManager,
            IMqttNetLogger logger)
        {
            _options = options ?? throw new ArgumentNullException(nameof(options));
            _retainedMessagesManager = retainedMessagesManager ?? throw new ArgumentNullException(nameof(retainedMessagesManager));
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            ClientId = clientId;

            SubscriptionsManager = new MqttClientSubscriptionsManager(_options, clientId);
            PendingMessagesQueue = new MqttClientPendingMessagesQueue(_options, this, _logger);
        }
Exemple #15
0
        public MqttPacketInspectorHandler(IMqttPacketInspector packetInspector, IMqttNetLogger logger)
        {
            _packetInspector = packetInspector;

            if (packetInspector != null)
            {
                _receivedPacketBuffer = new MemoryStream();
            }

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.CreateScopedLogger(nameof(MqttPacketInspectorHandler));
        }
Exemple #16
0
        public MqttServer(IEnumerable <IMqttServerAdapter> adapters, IMqttNetLogger logger)
        {
            if (adapters == null)
            {
                throw new ArgumentNullException(nameof(adapters));
            }
            _adapters = adapters.ToList();

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.CreateChildLogger(nameof(MqttServer));

            _eventDispatcher = new MqttServerEventDispatcher(logger.CreateChildLogger(nameof(MqttServerEventDispatcher)));
        }
Exemple #17
0
        public MqttClientSession(
            string clientId,
            MqttServerOptions options,
            MqttClientSessionsManager sessionsManager,
            IMqttNetLogger logger)
        {
            _sessionsManager = sessionsManager ?? throw new ArgumentNullException(nameof(sessionsManager));
            _logger          = logger ?? throw new ArgumentNullException(nameof(logger));

            ClientId = clientId;

            _options = options;

            _subscriptionsManager = new MqttClientSubscriptionsManager(_options);
            _pendingMessagesQueue = new MqttClientPendingMessagesQueue(_options, this, _logger);
        }
Exemple #18
0
        public MqttTcpServerListener(
            AddressFamily addressFamily,
            MqttServerTcpEndpointBaseOptions options,
            X509Certificate2 tlsCertificate,
            IMqttNetLogger logger)
        {
            _addressFamily  = addressFamily;
            _options        = options;
            _tlsCertificate = tlsCertificate;
            _logger         = logger.CreateChildLogger(nameof(MqttTcpServerListener));

            if (_options is MqttServerTlsTcpEndpointOptions tlsOptions)
            {
                _tlsOptions = tlsOptions;
            }
        }
        public MqttClientSessionsManager(
            IMqttServerOptions options,
            IMqttRetainedMessagesManager retainedMessagesManager,
            MqttServerEventDispatcher eventDispatcher,
            IMqttNetLogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger     = logger.CreateScopedLogger(nameof(MqttClientSessionsManager));
            _rootLogger = logger;

            _eventDispatcher         = eventDispatcher ?? throw new ArgumentNullException(nameof(eventDispatcher));
            _options                 = options ?? throw new ArgumentNullException(nameof(options));
            _retainedMessagesManager = retainedMessagesManager ?? throw new ArgumentNullException(nameof(retainedMessagesManager));
        }
        public MqttClientSessionsManager(
            MqttServerOptions options,
            MqttRetainedMessagesManager retainedMessagesManager,
            MqttServerEventContainer eventContainer,
            IMqttNetLogger logger)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _logger     = logger.WithSource(nameof(MqttClientSessionsManager));
            _rootLogger = logger;

            _options = options ?? throw new ArgumentNullException(nameof(options));
            _retainedMessagesManager = retainedMessagesManager ?? throw new ArgumentNullException(nameof(retainedMessagesManager));
            _eventContainer          = eventContainer ?? throw new ArgumentNullException(nameof(eventContainer));
        }
Exemple #21
0
        public MqttServer(MqttServerOptions options, IEnumerable <IMqttServerAdapter> adapters, IMqttNetLogger logger)
        {
            _options = options ?? throw new ArgumentNullException(nameof(options));

            if (adapters == null)
            {
                throw new ArgumentNullException(nameof(adapters));
            }

            _adapters = adapters.ToList();

            _rootLogger = logger ?? throw new ArgumentNullException(nameof(logger));
            _logger     = logger.WithSource(nameof(MqttServer));

            _retainedMessagesManager = new MqttRetainedMessagesManager(_eventContainer, _rootLogger);
            _clientSessionsManager   = new MqttClientSessionsManager(options, _retainedMessagesManager, _eventContainer, _rootLogger);
            _keepAliveMonitor        = new MqttServerKeepAliveMonitor(options, _clientSessionsManager, _rootLogger);
        }
        public MqttTcpServerListener(
            AddressFamily addressFamily,
            MqttServerOptions serverOptions,
            MqttServerTcpEndpointBaseOptions tcpEndpointOptions,
            X509Certificate2 tlsCertificate,
            IMqttNetLogger logger)
        {
            _addressFamily  = addressFamily;
            _serverOptions  = serverOptions ?? throw new ArgumentNullException(nameof(serverOptions));
            _options        = tcpEndpointOptions ?? throw new ArgumentNullException(nameof(tcpEndpointOptions));
            _tlsCertificate = tlsCertificate;
            _rootLogger     = logger;
            _logger         = logger.WithSource(nameof(MqttTcpServerListener));

            if (_options is MqttServerTlsTcpEndpointOptions tlsOptions)
            {
                _tlsOptions = tlsOptions;
            }
        }
Exemple #23
0
        public MqttClientSessionsManager(
            IMqttServerOptions options,
            IMqttRetainedMessagesManager retainedMessagesManager,
            CancellationToken cancellationToken,
            MqttServerEventDispatcher eventDispatcher,
            IMqttNetLogger logger)
        {
            _cancellationToken = cancellationToken;

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.CreateChildLogger(nameof(MqttClientSessionsManager));

            _eventDispatcher         = eventDispatcher ?? throw new ArgumentNullException(nameof(eventDispatcher));
            _options                 = options ?? throw new ArgumentNullException(nameof(options));
            _retainedMessagesManager = retainedMessagesManager ?? throw new ArgumentNullException(nameof(retainedMessagesManager));
        }
Exemple #24
0
        public void Connect(ClientCredentials credentials = null)
        {
            if (credentials != null && !credentials.HasCertificates())
            {
                Logger.Error("No certificates imported");
            }
            MqttClientOptionsBuilder optionsBuilder = CreateOptionsBuilder(credentials);

            m_MqttLogger = new MqttNetLogger();

            m_MqttClient = new MqttFactory().CreateMqttClient(m_MqttLogger);
            m_MqttClient.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(e => MqttClientOnApplicationMessageReceived(e));
            m_MqttClient.DisconnectedHandler = new MqttClientDisconnectedHandlerDelegate(e => MqttClientOnDisconnected(e));
            IMqttClientOptions options = optionsBuilder.Build();

            Logger.Debug($"Waiting for connection ... (CommTimeout: {options.CommunicationTimeout.Seconds} s, MqttKeepAlive: {options.KeepAlivePeriod.Seconds} s)");
            m_MqttClient.ConnectAsync(options)
            .Wait();

            //m_Logger.Debug($"Connecting finished. Result: {result.ResultCode}");
        }
Exemple #25
0
        public MqttClientConnection(
            MqttConnectPacket connectPacket,
            IMqttChannelAdapter channelAdapter,
            MqttClientSession session,
            IMqttServerOptions serverOptions,
            MqttClientSessionsManager sessionsManager,
            IMqttNetLogger logger)
        {
            _serverOptions   = serverOptions ?? throw new ArgumentNullException(nameof(serverOptions));
            _sessionsManager = sessionsManager ?? throw new ArgumentNullException(nameof(sessionsManager));

            _channelAdapter = channelAdapter ?? throw new ArgumentNullException(nameof(channelAdapter));
            _endpoint       = channelAdapter.Endpoint;

            Session        = session ?? throw new ArgumentNullException(nameof(session));
            _connectPacket = connectPacket ?? throw new ArgumentNullException(nameof(connectPacket));

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            _logger = logger.WithSource(nameof(MqttClientConnection));
        }
        private static IMqttServer CreateOrleansMqttSever(this MqttFactory factory, IClusterClient clusterClient, IMqttServerOptions options, List <IMqttServerAdapter> adapters, IMqttNetLogger logger, ILogger <OrleansManagedMqttServer> appLogger)
        {
            if (clusterClient == null)
            {
                throw new ArgumentNullException(nameof(clusterClient));
            }
            if (adapters == null)
            {
                throw new ArgumentNullException(nameof(adapters));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            return(new OrleansManagedMqttServer(clusterClient, options, adapters, logger.CreateChildLogger(), appLogger));
        }
Exemple #27
0
 public MqttHostedServerEx(IMqttServerOptions options, IEnumerable <IMqttServerAdapter> adapters, IMqttNetLogger logger)
     : base(adapters, logger.CreateChildLogger(nameof(MqttHostedServerEx)))
 {
     Options = options ?? throw new ArgumentNullException(nameof(options));
 }
Exemple #28
0
        public IMqttServer CreateMqttServer(IEnumerable <IMqttServerAdapter> serverAdapters, IMqttNetLogger logger)
        {
            if (serverAdapters == null)
            {
                throw new ArgumentNullException(nameof(serverAdapters));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            return(new MqttServer(serverAdapters, logger.CreateChildLogger()));
        }
Exemple #29
0
 public MqttFactory(IMqttNetLogger logger)
 {
     DefaultLogger = logger ?? throw new ArgumentNullException(nameof(logger));
 }
 public MqttTcpServerAdapter(IMqttNetLogger logger)
 {
     _rootLogger = logger ?? throw new ArgumentNullException(nameof(logger));
     _logger     = logger.CreateScopedLogger(nameof(MqttTcpServerAdapter));
 }