文档文档

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",
                    ),
            }),
    )

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近期数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看