mqqtt 离线消息

mqqtt 离线消息

将cleanSession 设为 true ,当客户端掉线时 ,服务端会清除 客户端 session 。 重连后 客户端会有一个新的session。

cleanSession 设为false,客户端掉线后 服务器端不会清除session,当重连后可以接收之前订阅主题的消息。当客户端上线后会接受到它离线的这段时间的消息

为什么不能收到离线消息?我想说的是 你很有可能在再次连接的时候又重新订阅了该topic。这样是接收不到离线消息的。
离线消息是订阅了某个topic的client 在断开连接以后,在接下来又重新连接的时候,任然可以收到在它断开连接的这段时间内,该topic上的消息。
这就需要将client的 setCleanSession 设置为false,这样服务器才能保留它的session,再次建立连接的时候,它就会继续使用这个session了。 
注意:clientId 是不能更改的。
原文地址:https://www.cnblogs.com/hnxxcxg/p/12665834.html