diff --git a/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/constant/CacheConstants.java b/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/constant/CacheConstants.java index 0e177fd..b6caec3 100644 --- a/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/constant/CacheConstants.java +++ b/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/constant/CacheConstants.java @@ -9,7 +9,7 @@ public class CacheConstants /** * 设备心跳缓存key */ - public static final String EQUIPMENT_HEARTBEAT = "equipment:heartbeat:"; + public static final String EQUIPMENT_HEARTBEAT = "xf:heartbeat:"; /** * 设备心跳缓存过期时间 diff --git a/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/listener/CarMessageListener.java b/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/listener/CarMessageListener.java deleted file mode 100644 index 81d36c3..0000000 --- a/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/listener/CarMessageListener.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.dromara.mica.mqtt.server.listener; - -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.dromara.mica.mqtt.core.annotation.MqttServerFunction; -import org.dromara.mica.mqtt.server.constant.CacheConstants; -import org.dromara.mica.mqtt.server.enums.FlagEnums; -import org.dromara.mica.mqtt.server.pojo.WhiteListOperatorPO; -import org.dromara.mica.mqtt.server.redis.RedisService; -import org.dromara.mica.mqtt.server.utils.AESUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.tio.utils.hutool.StrUtil; - -import java.nio.charset.StandardCharsets; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -/** - * 消息监听器 - * - * @author wsq - */ -@Slf4j -@Service -public class CarMessageListener { - - @Autowired - RedisService redisService; - - /** - * 心跳 - * @param topic - * @param topicVars - * @param message - */ - @MqttServerFunction("${sn}") - public void onKeepAliveMessage(String topic, Map topicVars, byte[] message) { - String sn = topicVars.get("sn"); - log.info("接收到来自客户端 [{}] 的心跳消息 -> Topic: {}, TopicVars: {}, Message: {}", sn, topic,topicVars,new String(message, StandardCharsets.UTF_8)); - - // 更新客户端的最后心跳 - redisService.setCacheObject(CacheConstants.EQUIPMENT_HEARTBEAT + sn, FlagEnums.ONLINE.getCode(), CacheConstants.OFFLINE_THRESHOLD, TimeUnit.MILLISECONDS); - } - - -} diff --git a/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/listener/xfMessageListener.java b/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/listener/xfMessageListener.java new file mode 100644 index 0000000..35dfd54 --- /dev/null +++ b/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/listener/xfMessageListener.java @@ -0,0 +1,73 @@ +package org.dromara.mica.mqtt.server.listener; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.dromara.mica.mqtt.core.annotation.MqttServerFunction; +import org.dromara.mica.mqtt.server.constant.CacheConstants; +import org.dromara.mica.mqtt.server.enums.FlagEnums; +import org.dromara.mica.mqtt.server.pojo.WhiteListOperatorPO; +import org.dromara.mica.mqtt.server.redis.RedisService; +import org.dromara.mica.mqtt.server.utils.AESUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.nio.charset.StandardCharsets; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * 消息监听器 + * + * @author wsq + */ +@Slf4j +@Service +public class xfMessageListener { + + @Autowired + RedisService redisService; + + /** + * 餐盘机8 + * @param topic + * @param topicVars + * @param message + */ + @MqttServerFunction("${sn}/8") + public void onKeepAliveMessage8(String topic, Map topicVars, byte[] message) { + String sn = topicVars.get("sn"); + String s = new String(message, StandardCharsets.UTF_8); + log.info("接收到来自客户端 [{}] 的心跳消息 -> sn: {}, Message: {}", topic, sn, s); + + JSONObject jsonObject = JSONObject.parseObject(s); + if (jsonObject != null && jsonObject.containsKey("IoState") && StrUtil.isNotBlank(jsonObject.getString("IoState"))) { + redisService.setCacheObject(CacheConstants.EQUIPMENT_HEARTBEAT + "8", jsonObject.getString("IoState"), CacheConstants.OFFLINE_THRESHOLD, TimeUnit.MILLISECONDS); + } + } + + /** + * 餐盘机9 + * @param topic + * @param topicVars + * @param message + */ + @MqttServerFunction("${sn}/9") + public void onKeepAliveMessage9(String topic, Map topicVars, byte[] message) { + String sn = topicVars.get("sn"); + String s = new String(message, StandardCharsets.UTF_8); + log.info("接收到来自客户端 [{}] 的心跳消息 -> sn: {}, Message: {}", topic, sn, s); + + JSONObject jsonObject = JSONObject.parseObject(s); + if (jsonObject != null && jsonObject.containsKey("IoState") && StrUtil.isNotBlank(jsonObject.getString("IoState"))) { + redisService.setCacheObject(CacheConstants.EQUIPMENT_HEARTBEAT + "9", jsonObject.getString("IoState"), CacheConstants.OFFLINE_THRESHOLD, TimeUnit.MILLISECONDS); + } + } + + +} diff --git a/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/task/HeartbeatOnLineTask.java b/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/task/xfHeartbeatOnLineTask.java similarity index 93% rename from system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/task/HeartbeatOnLineTask.java rename to system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/task/xfHeartbeatOnLineTask.java index 4c3e6d1..4924a87 100644 --- a/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/task/HeartbeatOnLineTask.java +++ b/system/mqtt-xf-receiver/src/main/java/org/dromara/mica/mqtt/server/task/xfHeartbeatOnLineTask.java @@ -20,7 +20,7 @@ import java.util.List; */ @Slf4j @Service -public class HeartbeatOnLineTask { +public class xfHeartbeatOnLineTask { @Autowired RedisService redisService; @@ -28,7 +28,7 @@ public class HeartbeatOnLineTask { @Autowired IEquipmentService equipmentService; - @Scheduled(fixedRate = 10 * 1000) +// @Scheduled(fixedRate = 10 * 1000) public void run() { log.info("===========心跳检测============="); //缓存中有该设备心跳key diff --git a/system/mqtt-xf-receiver/src/main/resources/application-prod.yml b/system/mqtt-xf-receiver/src/main/resources/application-prod.yml index aba8da4..1c340fe 100644 --- a/system/mqtt-xf-receiver/src/main/resources/application-prod.yml +++ b/system/mqtt-xf-receiver/src/main/resources/application-prod.yml @@ -1,28 +1,13 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - #xa -# url: jdbc:mysql://127.0.0.1:3306/xa_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 -# username: root -# password: Xahg2024. - #jl -# url: jdbc:mysql://127.0.0.1:3306/jl_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 -# username: root -# password: JL202509jj - #td -# url: jdbc:mysql://127.0.0.1:3306/td_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 -# username: root -# password: td@JJ2024 - #zr - url: jdbc:mysql://192.168.155.42:3306/zr_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.19.3:3306/taihe_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: zr202407.J + password: thXF2024. data: redis: #zr - host: 192.168.155.42 - #xa、jl、td -# host: 127.0.0.1 + host: 127.0.0.1 port: 6379 password: - database: 1 + database: 0