Beispiel #1
0
 private void SendData()
 {
     while (!_CancellationToken.IsCancellationRequested)
     {
         try
         {
             using (var db = new LiteDatabase(DBFile))
             {
                 var col = db.GetCollection <IOTData>(typeof(IOTData).ToString());
                 IEnumerable <IOTData> iOTs = col.Find(x => x.Sended == false);
                 bool sendok = mQTTTran.SendMessageTB(System.Text.Json.JsonSerializer.Serialize(iOTs), Program.configInfo.Topic_IOTDATA);
                 if (sendok == true)
                 {
                     //发送成功,改变数据状态
                     foreach (IOTData iot in iOTs)
                     {
                         iot.Sended = true;
                         col.Update(iot);
                     }
                 }
                 else
                 {
                     //发送失败
                     mQTTTran.Connect();
                 }
             }
         }
         catch (Exception ex)
         {
             logger.LogError(ex.ToString());
         }
         System.Threading.Thread.Sleep(1000);
     }
 }
 public MqttService(ILogger <MqttService> logger)
 {
     this.logger         = logger;
     mQTTTran            = new MQTTTranData(Program.configInfo.ClientId, Program.configInfo.MQTTerver, Program.configInfo.MQTTPort, Program.configInfo.MQTTUsr, Program.configInfo.MQTTPsw);
     mQTTTran.OnGetData += MQTTTran_OnGetData;
     mQTTTran.SubTopic(new string[] { "" });
     mQTTTran.Connect();
     this.bus = new BusClient();
     this.bus.Subscribe(BusOption.CONFIG_CHANGE);
     this.bus.OnReceived += Bus_OnReceived;
 }