Я новичок в MQTT. Я пытаюсь переподключиться к брокеру, когда клиент потерял соединение. Это моя функция:
@Override
public void connectionLost(Throwable cause) {
// TODO Auto-generated method stub
reconnectStatus = 0;
executor.scheduleAtFixedRate(reconnectRunnable, 0, 5, TimeUnit.SECONDS); // reconnect every 5s
System.out.println(cause);
}
И это функция для переподключения:
// reconnect to the broker
Runnable reconnectRunnable = new Runnable() {
public void run() {
if(reconnectStatus == 1) {
System.out.println("Stop runnable!");
executor.shutdown();
return;
} else {
init();
}
}
};
Работает нормально во время первого перезапуска брокера. Однако этот connectionLost()
триггер не работает при втором перезапуске посредника.
Как я могу это исправить?
Большое спасибо.