diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/MQTTClient.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/MQTTClient.java index 54a4fd59..8e739912 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/MQTTClient.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/MQTTClient.java @@ -41,6 +41,10 @@ public class MQTTClient { client.connect(options); } + public boolean isConnected(){ + return client.isConnected(); + } + public boolean publish(String topic, String message) { if(!client.isConnected()){ logger.info("mqtt disconnected"); diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXJKForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXJKForwarder.java index 55abb893..544afbb6 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXJKForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXJKForwarder.java @@ -38,7 +38,12 @@ public class GXJKForwarder extends Forwarder { void registerMe() throws MqttException { init(FORWARDER_NAME, "MQTT "+brokerUrl,7,FWD_DEVICE_NAME,10); mqttClient = new MQTTClient(brokerUrl, username, password,clientid); - mqttClient.connect(); + try{ + mqttClient.connect(); + } + catch (Exception e){ + + } } /** @@ -47,7 +52,15 @@ public class GXJKForwarder extends Forwarder { @Scheduled(cron = "0 0/10 * * * ?") // 每30分钟执行一次 private void forwardGnss() { logger.debug("gxjk forwardGnss"); - forwardCurrentGnss(); + if(mqttClient.isConnected()) forwardCurrentGnss(); + else{ + try{ + mqttClient.connect(); + } + catch (Exception e){ + + } + } } @Override