Esempio n. 1
0
        public Client(MqttSettings mqttSettings, bool autoReconnect = true)
        {
            this._mqttSettings  = mqttSettings;
            this._autoReconnect = autoReconnect;

            Log = LogManager.GetCurrentClassLogger("MqttClient");

            client = new MqttClient(_mqttSettings.broker, _mqttSettings.port, false, null, null, MqttSslProtocols.None);

            client.MqttMsgPublishReceived += Client_MqttMsgPublishReceived;
            client.ConnectionClosed       += Client_ConnectionClosed;

            string clientId = _mqttSettings.deviceId;

            if (autoReconnect)
            {
                _reconnectTimer          = new System.Timers.Timer(_mqttSettings.reconnectInterval);
                _reconnectTimer.Elapsed += delegate
                {
                    if (client != null && !client.IsConnected)
                    {
                        ConnectionReconnecting?.Invoke();
                        _queueCancellationTokenSource.Cancel();
                        MqttConnect();
                    }
                };
            }
        }
 private void Reconnecting()
 {
     ConnectionReconnecting?.Invoke();
 }