java mqtt自动重连注意点

1、在使用 Java 的 org.eclipse.paho.client.mqttv3 MQTT 客户端库时,options.setAutomaticReconnect(false) 的设置是用来指定在连接丢失后,客户端是否应该自动尝试重新连接。

将其设置为 false 意味着如果连接丢失,客户端不会自动尝试重新连接。

然而,即使设置了自动重连为 false,connectionLost(Throwable cause) 回调函数仍然会被执行。这是因为 connectionLost 方法是在每次连接丢失时被调用的,无论自动重连是否被启用。这个回调提供了一个处理连接丢失事件的机会,比如可以在这里记录日志、清理资源或者根据应用需求手动重连。

 简单来说,setAutomaticReconnect(false) 控制的是客户端是否自动重新尝试连接,而不影响 connectionLost 方法的调用。这个方法总是在连接断开时被调用,以便开发者可以了解到连接状态的改变,并采取相应的行动。
2、另外注意一点,如果options.setAutomaticReconnect(true),不建议再在 connectionLost函数写重连逻辑了。因为逻辑重复,资源占用且重连可能冲突。如果想自定义重连逻辑,建议设置options.setAutomaticReconnect(false)。

  

posted @ 2024-06-07 17:23  依然喜欢那片蓝天  阅读(13)  评论(0编辑  收藏  举报