mqtt.publish() 函数
mqtt.publish()
是实验性的,并且随时可能更改。
仅在 InfluxDB Cloud (TSM) 中受支持
experimental/mqtt
包仅在 InfluxDB Cloud (TSM) 中受支持。它仍然可以在 InfluxDB OSS 和 Enterprise 中导入,但函数将无法成功发布到 MQTT 代理。
mqtt.publish()
使用 MQTT 协议将数据发送到 MQTT 代理。
函数类型签名
(
broker: string,
message: string,
topic: string,
?clientid: string,
?password: string,
?qos: int,
?retain: bool,
?timeout: duration,
?username: string,
) => bool
有关更多信息,请参阅函数类型签名。
参数
broker
(必需)MQTT 代理连接字符串。
topic
(必需)要向其发送数据的 MQTT 主题。
message
(必需)要发送到 MQTT 代理的消息。
qos
MQTT 服务质量 (QoS) 级别。值范围为 [0-2]
。默认为 0
。
retain
MQTT 保留标志。默认为 false
。
clientid
MQTT 客户端 ID。
username
要发送到 MQTT 代理的用户名。
仅当代理需要身份验证时才需要用户名。如果您提供用户名,则必须提供密码。
password
要发送到 MQTT 代理的密码。
仅当代理需要身份验证时才需要密码。如果您提供密码,则必须提供用户名。
timeout
MQTT 连接超时。默认为 1s
。
示例
向 MQTT 端点发送消息
import "experimental/mqtt"
mqtt.publish(
broker: "tcp://localhost:8883",
topic: "alerts",
message: "wake up",
clientid: "alert-watcher",
retain: true,
)
使用输入数据向 MQTT 端点发送消息
import "experimental/mqtt"
import "sampledata"
sampledata.float()
|> map(
fn: (r) =>
({r with sent:
mqtt.publish(
broker: "tcp://localhost:8883",
topic: "sampledata/${r.id}",
message: string(v: r._value),
clientid: "sensor-12a4",
),
}),
)
此页面是否对您有帮助?
感谢您的反馈!