Exemplo n.º 1
0
        /// <summary>
        /// 建立物件
        /// </summary>
        private void CreateMqtt()
        {
            if (isCreateMqtt)
            {
                log.Info($"MQTT重新連線...已執行,跳過不執行");
                return;
            }

            isCreateMqtt = true;

            var connected = mqttClient.IsConnected;

            while (mqttClient != null && !mqttClient.IsConnected)
            {
                try
                {
                    byte code = mqttClient.Connect(Guid.NewGuid().ToString());
                    IsConnected = true;

                    mqttClient.ConnectionClosed -= MqttClient_ConnectionClosed;
                    mqttClient.ConnectionClosed += MqttClient_ConnectionClosed;

                    Subscribe(this.topicList);
                }
                catch (Exception ex)
                {
                    log.Error($"MQTT無法連線:{ex.ToString()}");
                    log.Info($"MQTT無法連線,重新執行..." + mqttClient.GetHashCode());
                }

                System.Threading.Thread.Sleep(1000);
            }

            isCreateMqtt = false;
        }