From c40a3c2d05e52a3096a0383cfb59e4bca0a6b4be Mon Sep 17 00:00:00 2001 From: weidong Date: Fri, 26 Jan 2024 14:11:56 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9mqtt=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/imdroid/beidou_fwd/service/MQTTClient.java | 13 +++++++++---- .../imdroid/beidou_fwd/task/GZYMQTTForwarder.java | 5 ++--- 2 files changed, 11 insertions(+), 7 deletions(-) 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 6e99920b..946c0d02 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 @@ -36,22 +36,27 @@ public class MQTTClient { options.setCleanSession(true); options.setUserName(username); options.setPassword(password.toCharArray()); + options.setAutomaticReconnect(true); + //options.setKeepAliveInterval();default:30s // Connect to the MQTT broker. client.connect(options); } - public void publish(String message) throws MqttException { + public boolean publish(String message) throws MqttException { + if(!client.isConnected()){ + logger.info("mqtt disconnected"); + return false; + } try { // Create a new MQTT message. MqttMessage mqttMessage = new MqttMessage(message.getBytes()); mqttMessage.setQos(qos); // Publish the MQTT message to the topic. client.publish(topic, mqttMessage); - System.out.println("Message published"); - System.out.println("topic: " + topic); - System.out.println("message content: " + mqttMessage); } catch (Exception e) { logger.error("mqtt推送gnss数据异常:", e); + return false; } + return true; } public void disconnect() throws MqttException { diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java index a66c34b1..9015a329 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java @@ -76,11 +76,10 @@ public class GZYMQTTForwarder extends Forwarder { tranData.setDeviceType(2); tranData.setDeviceSn(locationRecord.getDeviceid()); String json = GsonUtil.toJson(tranData); - String msg = "JGKJ" + json + "#!"; logger.info("forward to GZY mqtt"); - logger.info(msg); + logger.info(json); try { - mqttClient.publish(msg); + if(!mqttClient.publish(json)) break; Thread.sleep(200); } catch (Exception e1) { e1.printStackTrace();