diff --git a/Data/Entities/DbMqtt.cs b/Data/Entities/DbMqtt.cs index 313cdaf..d8ac213 100644 --- a/Data/Entities/DbMqtt.cs +++ b/Data/Entities/DbMqtt.cs @@ -49,6 +49,7 @@ public class DbMqtt /// /// MQTT客户端登录密码。 /// + [SugarColumn(IsIgnore = true)] public string PassWord { get; set; } = String.Empty; /// @@ -65,21 +66,25 @@ public class DbMqtt /// /// MQTT发布主题。 /// + [SugarColumn(IsIgnore = true)] public string PublishTopic { get; set; } = String.Empty; /// /// MQTT备注。 /// + [SugarColumn(IsIgnore = true)] public string Remark { get; set; } = String.Empty; /// /// MQTT订阅主题。 /// + [SugarColumn(IsIgnore = true)] public string SubTopics { get; set; } = String.Empty; /// /// MQTT客户端登录用户名。 /// + [SugarColumn(IsIgnore = true)] public string UserName { get; set; } = String.Empty; /// diff --git a/Services/MqttBackgroundService.cs b/Services/MqttBackgroundService.cs index 3040018..7d28aed 100644 --- a/Services/MqttBackgroundService.cs +++ b/Services/MqttBackgroundService.cs @@ -153,12 +153,26 @@ namespace PMSWPF.Services .WithCredentials(mqtt.UserName, mqtt.PassWord) .WithCleanSession() // 清理会话,每次连接都是新会话 .Build(); - + // 设置连接成功事件处理程序。 - client.UseConnectedHandler(e => + client.UseConnectedHandler(async e => { NotificationHelper.ShowSuccess($"已连接到MQTT服务器: {mqtt.Name}"); mqtt.IsConnected = true; + + // 订阅主题 + await client.SubscribeAsync(new MqttTopicFilterBuilder().WithTopic("test").Build()); + NlogHelper.Info($"MQTT客户端 {mqtt.Name} 已订阅主题: {mqtt.SubTopics}"); + }); + + // 设置接收消息处理程序 + client.UseApplicationMessageReceivedHandler(e => + { + var topic = e.ApplicationMessage.Topic; + var payload = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload); + NlogHelper.Info($"MQTT客户端 {mqtt.Name} 收到消息: 主题={topic}, 消息={payload}"); + + // 在这里添加处理消息的逻辑 }); // 设置断开连接事件处理程序。