客户端如何连接到MQTT Broker,并将clean-session标志设置为false

问题描述 投票:-1回答:1

Clean Session支持消息的持久性。默认情况下,Clean Session is true的值。

我们可以使用请求有效负载设置Qos并保留标志值,如下所示:

docker run -it --rm --name mqtt-publisher --network \ fiware_default efrecon / mqtt-client pub -h mosquitto -m“c | 1234”\ -t“/ 4jggokgpepnvsb2uv4s40d59ov / motion001 / attrs”-q 2 -r -d

任何人都可以告诉我客户端如何将clean-session参数设置为false?我们可以用请求有效载荷设置这个标志,还是有其他方法?

node.js mqtt mosquitto iota
1个回答
1
投票

MQTT客户端连接时设置clean会话标志。

这是在CONNECT数据包中作为connect flags的一部分完成的。

如果您使用的是mosquitto_sub,则默认使用clean会话进行订阅。可以设置-c--disable-clean-session标志以启用持久会话。

使用此标志时需要设置MQTT客户端ID,以便代理可以按客户端ID跟踪订阅。来自https://mosquitto.org/man/mosquitto_sub-1.html

-c, - disable-clean-session

禁用“干净会话”标志。这意味着客户端的所有订阅将在断开连接后保持,以及后续的QoS 1和QoS 2消息。当客户端重新连接时,它将接收所有排队的消息。

如果使用此选项,则必须使用--id手动设置客户端ID

© www.soinside.com 2019 - 2024. All rights reserved.