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; }