SuperAPI AI 工具集

mqttnet

智能体与模型

查看项目

更新于 10-16 10:29

技能介绍

用途

MQTTnet 技能用于在 VanDaemon 项目中实现基于 MQTT 的设备通信,其具体应用场景为 ESP32 LED 调光器集成。该技能面向需要在 .NET 应用(尤其是 C# 后台服务)中管理 MQTT broker 连接、发布和订阅消息的开发者。

主要能力

该技能围绕 MQTTnet 4.3.x 的托管客户端模式构建,支持以下能力:

  • 创建并管理 MQTT 客户端实例(通过 MqttFactory)。
  • 配置连接参数,如 broker 地址、端口、客户端 ID 和干净会话(clean session)。
  • 订阅主题,支持主题通配符(+ 表示单层,# 表示多层)和 QoS 等级设置。
  • 发布应用消息,包含主题、负载、QoS 等级和 Retain 标志。
  • 处理传入消息,通过 ApplicationMessageReceivedAsync 事件进行解析和分发。
  • 作为后台服务运行客户端,执行周期性的设备发现和状态同步。

使用方式

技能资料提供了基本的托管客户端设置示例。首先使用 MqttFactory 创建客户端,然后通过 MqttClientOptionsBuilder 配置 TCP 服务器、客户端 ID 和干净会话,构建 MqttClientOptions。接着订阅主题过滤器,例如 vandaemon/leddimmer/+/status,设置 QoS 为 AtLeastOnce。发布消息时,使用 MqttApplicationMessageBuilder 指定主题、负载、QoS 和 Retain 标志,然后调用 PublishAsync。

资料还展示了两种常见模式:

  1. 后台服务集成:在继承 BackgroundService 的类中,于 ExecuteAsync 里初始化插件,并在循环中定期调用 DiscoverDevicesAsync,间隔 10 秒。
  2. 消息处理器模式:在 ApplicationMessageReceivedAsync 事件处理中,通过解析主题分段来提取设备 ID 和通道号,并处理状态负载。

关键概念

  • MqttFactory:用于创建客户端实例。
  • MqttClientOptions:连接配置的构建器。
  • 主题通配符:+ 匹配单层, # 匹配多层。
  • QoS 等级:0 表示最多一次,1 表示至少一次,2 表示恰好一次;状态变更建议使用 QoS 1。
  • Retain 标志:broker 存储最后一条消息,适用于设备状态。

适用场景

该技能适用于实现 MQTT 基于设备的通信、创建 IoT 应用、构建需要与 MQTT broker 交互的后台服务,以及进行消息的发布/订阅管理。

限制

资料未提供关于收费、价格、平台兼容性、性能或效果的具体说明。其他限制暂未提供。