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)
参见
- Lua 脚本概览 - 核心 Lua 脚本概念和钩子
- 消息 API - 消息对象方法和二进制读取函数
- Modbus 辅助函数 - Modbus 协议辅助函数
- UDP 辅助函数 - UDP 数据报发送辅助函数