mqtt客户端使用的是
org.eclipse.paho.client.mqttv3
private static MqttConnectOptions options;
options = new MqttConnectOptions(); options.setCleanSession(true);
options.setCleanSession(true);
作用:
设置客户端和服务器是否应在重新启动和重新连接时记住状态。
如果设置为false,则客户端和服务器将在重新启动客户端、服务器和连接时保持状态。当状态保持时:
即使重新启动客户端、服务器或连接,消息传递也将可靠地满足指定的QOS。
服务器会将订阅视为持久订阅。
如果设置为true,则客户端和服务器将不会在重新启动客户端、服务器或连接时保持状态。这意味着
如果重新启动客户端、服务器或连接,则无法维持向指定QOS的消息传递
服务器将订阅视为非持久订阅
网络断开后,客户端会进行重连,但是重连之前订阅的主题就失效了,不再接受之前订阅主题的消息。所以将options.setCleanSession(false);问题解决。