跳到主要内容

MQTT 辅助函数

MQTT 辅助函数为脚本提供便捷的 Lua API,用于发布 MQTT 消息。这些函数处理协议验证、元数据创建和消息调度。

API 参考

mqtt_publish(topic, payload, qos, retain, delay, connection_id) → boolean

使用指定的主题、QoS 和保留标志发布 MQTT 消息。

参数:

  • topic (string) - MQTT 主题名称(必需,不能为 nil)
  • payload (string) - 消息负载作为二进制字符串(可以为空)
  • qos (number) - 服务质量等级(0、1 或 2)
  • retain (boolean) - 保留标志(true = 代理为新订阅者保留消息)
  • delay (number) - 发布前的延迟(毫秒)
  • connection_id (number, 可选) - 目标连接 ID(默认值:0)

返回值:

  • true - 消息成功调度
  • false - 调度失败(通道已关闭或出错)
  • Error - 如果主题为 nil 或验证失败

QoS 等级:

  • QoS 0: 最多一次交付(发即忘)
  • QoS 1: 至少一次交付(已确认)
  • QoS 2: 恰好一次交付(保证)

示例:

-- 发布传感器数据,使用 QoS 1,不保留
mqtt_publish("sensors/temperature", "23.5", 1, false, 0)

-- 发布到特定连接,延迟 500ms
mqtt_publish("status/heartbeat", "alive", 0, false, 500, 1)

-- 发布二进制数据
local binary_payload = string.char(0x01, 0x02, 0x03, 0x04)
mqtt_publish("data/raw", binary_payload, 1, false, 0)

参见