程序员开发实例大全宝库

网站首页 > 编程文章 正文

MQTTnet库在.NET环境中发布MQTT应用消息

zazugpt 2024-08-27 00:45:43 编程文章 27 ℃ 0 评论

这段代码展示了如何使用MQTTnet库在.NET环境中发布MQTT应用消息,包括发布单个消息和发布多个消息的示例。下面是对这些示例代码加上中文注释的版本:

// 授权给 .NET Foundation 根据一个或多个协议。

// .NET Foundation 在 MIT 许可下授权此文件。

// 有关详细信息,请参阅项目根目录中的 LICENSE 文件。

// ReSharper 禁用全局未使用类型

// ReSharper 禁用全局未使用成员

// ReSharper 禁用不一致命名

using MQTTnet.Client;

namespace MQTTnet.Samples.Client;

public static class Client_Publish_Samples

{

public static async Task Publish_Application_Message()

{

/*

* 此示例推送一个包含主题和载荷的简单应用消息。

*

* 总是在存在的情况下使用构建器。此项目中的构建器被设计为

* 向后兼容。通过其构造函数创建 _MqttApplicationMessage_ 也是

* 支持的,但是这个类在未来的发布中可能会经常更改,而构建器不会,

* 或者至少在可能的情况下提供向后兼容性。

*/

var mqttFactory = new MqttFactory();

using (var mqttClient = mqttFactory.CreateMqttClient())

{

var mqttClientOptions = new MqttClientOptionsBuilder()

.WithTcpServer("broker.hivemq.com")

.Build();

await mqttClient.ConnectAsync(mqttClientOptions, CancellationToken.None);

var applicationMessage = new MqttApplicationMessageBuilder()

.WithTopic("samples/temperature/living_room")

.WithPayload("19.5")

.Build();

await mqttClient.PublishAsync(applicationMessage, CancellationToken.None);

await mqttClient.DisconnectAsync();

Console.WriteLine("MQTT 应用消息已发布。");

}

}

public static async Task Publish_Multiple_Application_Messages()

{

/*

* 此示例推送多个包含主题和载荷的简单应用消息。

*

* 详情见 _Publish_Application_Message_ 示例。

*/

var mqttFactory = new MqttFactory();

using (var mqttClient = mqttFactory.CreateMqttClient())

{

var mqttClientOptions = new MqttClientOptionsBuilder()

.WithTcpServer("broker.hivemq.com")

.Build();

await mqttClient.ConnectAsync(mqttClientOptions, CancellationToken.None);

var applicationMessage = new MqttApplicationMessageBuilder()

.WithTopic("samples/temperature/living_room")

.WithPayload("19.5")

.Build();

await mqttClient.PublishAsync(applicationMessage, CancellationToken.None);

applicationMessage = new MqttApplicationMessageBuilder()

.WithTopic("samples/temperature/living_room")

.WithPayload("20.0")

.Build();

await mqttClient.PublishAsync(applicationMessage, CancellationToken.None);

applicationMessage = new MqttApplicationMessageBuilder()

.WithTopic("samples/temperature/living_room")

.WithPayload("21.0")

.Build();

await mqttClient.PublishAsync(applicationMessage, CancellationToken.None);

await mqttClient.DisconnectAsync();

Console.WriteLine("MQTT 应用消息已发布。");

}

}

}

这些示例代码提供了使用MQTTnet库在.NET应用中与MQTT代理服务器连接并发布消息的基本方法。通过使用MqttClientOptionsBuilder来配置客户端选项,包括指定MQTT代理服务器的地址。然后,使用MqttApplicationMessageBuilder构建应用消息,并通过调用PublishAsync方法来发布这些消息。最后,示例中还展示了如何优雅地断开与MQTT代理服务器的连接。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表