コード例 #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();
                    }
                };
            }
        }
コード例 #2
0
 public FakeClient(MqttSettings mqttSettings)
 {
     this._mqttSettings = mqttSettings;
     Log = LogManager.GetCurrentClassLogger("FakeMqtt");
     Log.Warn("***");
     Log.Warn("Initializing FakeClient. No actual MQTT connections will be made.");
     Log.Warn("Essentially a very basic, very fake MQTT internal server.");
     Log.Warn($"Using fake delays: {_mqttSettings.useFakeMqttDelays} | Using fake failures: {_mqttSettings.useFakeMqttFailures}");
     Log.Warn("***");
 }