添加订阅主题并接收信息
This commit is contained in:
@@ -49,6 +49,7 @@ public class DbMqtt
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// MQTT客户端登录密码。
|
/// MQTT客户端登录密码。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SugarColumn(IsIgnore = true)]
|
||||||
public string PassWord { get; set; } = String.Empty;
|
public string PassWord { get; set; } = String.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -65,21 +66,25 @@ public class DbMqtt
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// MQTT发布主题。
|
/// MQTT发布主题。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SugarColumn(IsIgnore = true)]
|
||||||
public string PublishTopic { get; set; } = String.Empty;
|
public string PublishTopic { get; set; } = String.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// MQTT备注。
|
/// MQTT备注。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SugarColumn(IsIgnore = true)]
|
||||||
public string Remark { get; set; } = String.Empty;
|
public string Remark { get; set; } = String.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// MQTT订阅主题。
|
/// MQTT订阅主题。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SugarColumn(IsIgnore = true)]
|
||||||
public string SubTopics { get; set; } = String.Empty;
|
public string SubTopics { get; set; } = String.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// MQTT客户端登录用户名。
|
/// MQTT客户端登录用户名。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SugarColumn(IsIgnore = true)]
|
||||||
public string UserName { get; set; } = String.Empty;
|
public string UserName { get; set; } = String.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -153,12 +153,26 @@ namespace PMSWPF.Services
|
|||||||
.WithCredentials(mqtt.UserName, mqtt.PassWord)
|
.WithCredentials(mqtt.UserName, mqtt.PassWord)
|
||||||
.WithCleanSession() // 清理会话,每次连接都是新会话
|
.WithCleanSession() // 清理会话,每次连接都是新会话
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
// 设置连接成功事件处理程序。
|
// 设置连接成功事件处理程序。
|
||||||
client.UseConnectedHandler(e =>
|
client.UseConnectedHandler(async e =>
|
||||||
{
|
{
|
||||||
NotificationHelper.ShowSuccess($"已连接到MQTT服务器: {mqtt.Name}");
|
NotificationHelper.ShowSuccess($"已连接到MQTT服务器: {mqtt.Name}");
|
||||||
mqtt.IsConnected = true;
|
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}");
|
||||||
|
|
||||||
|
// 在这里添加处理消息的逻辑
|
||||||
});
|
});
|
||||||
|
|
||||||
// 设置断开连接事件处理程序。
|
// 设置断开连接事件处理程序。
|
||||||
|
|||||||
Reference in New Issue
Block a user