客户端如何通过将干净会话标志设置为false

时间:2019-02-19 10:54:01

标签: node.js mqtt mosquitto iota

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? 我们可以使用请求有效载荷设置此标志吗?

1 个答案:

答案 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