一、mosquitto

1、启动mosquitto服务时添加-v,表示可以在broker中打印出监控日志。

mosquitto -c mosquitto.conf -v

2、订阅主题,在常规的命令之后,添加-c,来关闭cleanSeesion功能,也就是创建持久会话;添加-i clientId,附带上客户端id的信息,来作为唯一标识,之后将根据clientId重新连接会话并接收离线消息;添加-q 1or2,设置消息的QoS为1或者2。

mosquitto_sub -h brokerip -p 1883 -u username-P password -v -t topicname -c -i clientid -q 1

3、断开订阅。

4、发布消息,需添加-q 1or2。

mosquitto_pub -h serverip -p 1883 -u username -P password -t topicname -m <message> -q 1

5、重新订阅,此时即可看到离线消息。

二、mqtt3

        设置connOpts.setCleanSession(flase),以及发布消息时Qos≥1。

三、mqtt5

   在连接时配置cleanStart(false)创建持久会话,并设置会话存活时间sessionExpiry(SESSION_EXPIRATION)在连接后客户端会收到服务端的connAck报文,其中有个session present标识,若标识为true则代表会话已经存在,无需重新订阅主题,可以通过全局接收来获取离线消息。发布消息时QoS>=1

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐