ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarRtu.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarRtu.java
@@ -10,6 +10,6 @@ public class ArdSyCarRtu { private String id; private String carId; private String topicSubscribe; private String topicPublish; private String topicSubscribe; //订é private String topicPublish; //åå¸ } ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java
@@ -9,7 +9,8 @@ */ public interface ArdSyCarRtuService { List<ArdSyCarRtu> allCarTopic(); String[] allCarTopic(); List<ArdSyCarRtu> allCarTopicList(); ArdSyCarRtu one(String carId); ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java
@@ -22,7 +22,17 @@ private ArdSyCarRtuMapper ardSyCarRtuMapper; @Override public List<ArdSyCarRtu> allCarTopic() { public String[] allCarTopic() { List<ArdSyCarRtu> carRtus = ardSyCarRtuMapper.selectList(null); List<String> list = new ArrayList<>(); for (int i = 0; i < carRtus.size(); i++) { list.add(carRtus.get(i).getTopicPublish()); } return list.toArray(new String[list.size()]); } @Override public List<ArdSyCarRtu> allCarTopicList() { return ardSyCarRtuMapper.selectList(null); } ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
@@ -91,9 +91,6 @@ ArdRadarService ardRadarService = SpringUtils.getBean(ArdRadarService.class); ardRadarService.forceGuide(new String(message.getPayload(), StandardCharsets.UTF_8)); } if(topic.contains("/p")){ System.out.println("车è¾éä¿¡æ¯ï¼"+new String(message.getPayload(), StandardCharsets.UTF_8)); } } catch (Exception e) { log.debug("å¤çmqttæ¶æ¯å¼å¸¸:" + e); } ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
@@ -5,6 +5,8 @@ import com.ruoyi.sy.service.ArdSyCarRtuService; import com.ruoyi.system.service.ISysConfigService; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @@ -31,10 +33,31 @@ public void init() { //è·åçµç£éå°å String mqttUrl = sysConfigService.selectConfigByKey("ElectromagneticLockUrl"); List<ArdSyCarRtu> rtus = ardSyCarRtuService.allCarTopic(); List<ArdSyCarRtu> rtus = ardSyCarRtuService.allCarTopicList(); for (int i = 0; i < rtus.size(); i++) { ArdSyCarRtu rtu = rtus.get(i); String publish = rtu.getTopicPublish(); String carId = rtu.getCarId(); String subscribe = rtu.getTopicSubscribe(); try { MqttClient client = new MqttClient(mqttUrl,carId); // log.debug("--å建"+carId+"å·è½¦è¾çµåémqtt客æ·ç«¯"); MqttConnectOptions options = new MqttConnectOptions(); //è®¾ç½®ç¨æ·åå¯ç options.setUserName("admin"); options.setPassword("xzx12345".toCharArray()); // è®¾ç½®è¶ æ¶æ¶é´ options.setConnectionTimeout(100); // 设置ä¼è¯å¿è·³æ¶é´ options.setKeepAliveInterval(60); // æ¯å¦æ¸ é¤session options.setCleanSession(true); // log.debug("--çæ"+carId+"å·è½¦è¾çµåémqtté 置对象"); client.setCallback(new MqttOnceCallback(client,options,subscribe,2)); // log.debug("--æ·»å 车è¾çµç£éåè°å¤çç±»"); client.connect(options); }catch (Exception e) { e.printStackTrace(); } } // MqttConsumer mqttConsumer = new MqttConsumer(); // for (int i = 0; i < topic.length; i++) { ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ package com.ruoyi.utils.mqtt; import com.ruoyi.alarm.global.service.impl.GlobalAlarmServiceImpl; import com.ruoyi.alarm.radar.service.ArdRadarService; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.statistical.service.StatisticalService; import com.ruoyi.storage.minio.service.IStorageMinioEventService; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.*; import java.nio.charset.StandardCharsets; import java.util.Arrays; /** * @Description: mqttåè°å¤çç±» * @ClassName: MqttConsumerCallback * @Author: åèä¹ * @Date: 2023å¹´05æ29æ¥9:55 * @Version: 1.0 **/ @Slf4j(topic = "mqtt") public class MqttOnceCallback implements MqttCallbackExtended { private MqttClient client; private MqttConnectOptions options; private String topic; private int qos; public MqttOnceCallback(MqttClient client, MqttConnectOptions options, String topic, int qos) { this.client = client; this.options = options; this.topic = topic; this.qos = qos; } /** * æå¼éè¿ */ @Override public void connectionLost(Throwable cause) { // log.info("车è¾çµç£éMQTTè¿æ¥æå¼ï¼åèµ·éè¿......"); while (!client.isConnected()) { try { Thread.sleep(10000); if (null != client && !client.isConnected()) { client.reconnect(); // log.error("车è¾çµç£éå°è¯éæ°è¿æ¥"); } else { client.connect(options); // log.error("车è¾çµç£éå°è¯å»ºç«æ°è¿æ¥"); } } catch (Exception e) { // log.error("车è¾çµç£éæå¼éè¿å¼å¸¸:" + e.getMessage()); } } } /** * æ¥æ¶å°æ¶æ¯è°ç¨ä»¤çä¸è°ç¨ */ @Override public void deliveryComplete(IMqttDeliveryToken token) { //log.info("deliveryComplete---------" + Arrays.toString(topic)); } /** * æ¶æ¯å¤ç */ @Override public void messageArrived(String topic, MqttMessage message) { try { System.out.println("ã车è¾é主é¢ãï¼"+topic+"ã车è¾éä¿¡æ¯ãï¼"+new String(message.getPayload(), StandardCharsets.UTF_8)); } catch (Exception e) { log.debug("车è¾çµç£éå¤çmqttæ¶æ¯å¼å¸¸:" + e); } } /** * mqttè¿æ¥å订é ä¸»é¢ */ @Override public void connectComplete(boolean b, String s) { try { if (null != topic) { if (client.isConnected()) { client.subscribe(topic, qos); // log.info("车è¾çµç£émqttè¿æ¥æå" ); // log.info("--车è¾çµç£é订é 主é¢:ï¼" + topic); } else { log.info("车è¾çµç£émqttè¿æ¥å¤±è´¥"); } } } catch (Exception e) { log.info("车è¾çµç£émqtt订é 主é¢å¼å¸¸:" + e); } } }