现象:重连报错 32110
解决办法 :先断开连接【disconnect()】再重连【connect(options)】
public void connect() throws MqttException {
//判断拦截状态,这里注意一下,如果没有这个判断,连接失败
if (!mqttClient.isConnected()) {
mqttClient.connect(options);
log.info("连接成功");
}else {
//即使连接上也要先断开再重新连接
mqttClient.disconnect(); //不这样就重连会报错
mqttClient.connect(options);
log.info("连接成功");
}
}
public synchronized void reconnect() {
while (true) {
try {
log.info("尝试重连...");
//如果没有发生异常说明连接成功,如果发生异常,则死循环
Thread.sleep(2000);
connect();
break;
}catch (Exception e){
continue;
}
}
}