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? 我们可以使用请求有效载荷设置此标志吗?
答案 0 :(得分:1)
MQTT客户端连接时设置清洁会话标志。
这是connect flags的一部分在CONNECT数据包中完成的。
如果您使用的是mosquitto_sub
,则默认为使用干净会话进行订阅。可以设置-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