From 6e7b557c3d44d5c20d83ed1bff6b535ba5c8721d Mon Sep 17 00:00:00 2001 From: zhuangtianxiang <2913129173@qq.com> Date: Sun, 2 Mar 2025 17:55:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(mqtt):=20=E6=9B=B4=E6=96=B0=20MQTT=20?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E5=B9=B6=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 MQTT 主题从 "/v1/devices/+/datas" 更改为 "/r1/devices/+/datas" -启用按字节接收消息并进行相应处理 - 更新 RecordData 实体,移除未使用的 attachmentId 字段 --- .../modules/iot/record/entity/RecordData.java | 2 -- .../gateway/modules/mqtt/config/MqttConfig.java | 14 +++++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java index 40bcfcb..3ffeffe 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java @@ -26,8 +26,6 @@ public class RecordData { private String clientId; - private String attachmentId; - @TableField(typeHandler = JsonbTypeHandler.class) private Map content; diff --git a/src/main/java/com/zsc/edu/gateway/modules/mqtt/config/MqttConfig.java b/src/main/java/com/zsc/edu/gateway/modules/mqtt/config/MqttConfig.java index e0642b1..9d3f112 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/mqtt/config/MqttConfig.java +++ b/src/main/java/com/zsc/edu/gateway/modules/mqtt/config/MqttConfig.java @@ -25,11 +25,6 @@ import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessageHandler; import org.springframework.util.StringUtils; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; import java.util.UUID; @Slf4j @@ -108,7 +103,7 @@ public class MqttConfig { MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter( "clientId-" + UUID.randomUUID(), mqttPahoClientFactory(), - "/v1/devices/+/datas" + "/r1/devices/+/datas" ); adapter.setCompletionTimeout(5000); @@ -116,7 +111,7 @@ public class MqttConfig { DefaultPahoMessageConverter defaultPahoMessageConverter = new DefaultPahoMessageConverter(); // 按字节接收消息 -// defaultPahoMessageConverter.setPayloadAsBytes(true); + defaultPahoMessageConverter.setPayloadAsBytes(true); adapter.setConverter(defaultPahoMessageConverter); adapter.setQos(qos); adapter.setOutputChannel(mqttInputChannel()); @@ -136,8 +131,9 @@ public class MqttConfig { String topic = message.getHeaders().get("mqtt_receivedTopic").toString(); String clientId = topic.split("/")[3]; String deviceGatherer = clientId.substring(0, 3); - if (topic.matches("/v1/devices/\\d{12}/datas") && deviceGatherer.equals(gatherer)) { - JSONObject payload = JSONObject.parseObject(message.getPayload().toString()); + if (topic.matches("/r1/devices/\\d{12}/datas") && deviceGatherer.equals(gatherer)) { + String payloadString = new String((byte[]) message.getPayload()); + JSONObject payload = JSONObject.parseObject(payloadString); log.info("获取设备编码:" + clientId); log.info("负载:" + payload); JSONObject data = (JSONObject) JSONPath.eval(payload, "$.devices[0].services[0].data");