cnas-device/src/main/java/com/ruoyi/device/mqtt/DeviceMqttConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
cnas-device/src/main/java/com/ruoyi/device/mqtt/MQBean.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
cnas-device/src/main/java/com/ruoyi/device/mqtt/MQClient.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
cnas-device/src/main/java/com/ruoyi/device/mqtt/MQConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin-ztns/src/main/java/com/ruoyi/web/MqttApplicationRunner.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin-ztns/src/main/resources/application-druid.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-admin-ztns/src/main/resources/application-ztns.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
cnas-device/src/main/java/com/ruoyi/device/mqtt/DeviceMqttConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ package com.ruoyi.device.mqtt; import lombok.Data; import org.springframework.stereotype.Component; /** * mqttè¿æ¥åæ°å®ä½å¯¹è±¡ */ @Data @Component public class DeviceMqttConfig { /** * MQTT-æå¡ç«¯-IP */ // @Value("${mqtt.url}") private String url; /** * MQTT-æå¡ç«¯-ç¨æ·å */ // @Value("${mqtt.username}") private String username; /** * MQTT-æå¡ç«¯-å¯ç */ // @Value("${mqtt.password}") private String password; /** * è¶ æ¶æ¶é´ */ // @Value("${mqtt.timeout}") private int timeout; /** * å¿è·³æ£æµæ¶é´ */ // @Value("${mqtt.keepalive}") private int keepalive; /** * å¿è·³å çº§å« */ // @Value("${mqtt.qos}") private int qos; /** * æå¡ç«¯è¿æ¥è¶ æ¶æ¶é´ */ // @Value("${mqtt.completion-timeout}") private int completionTimeout; /** * clientId */ // @Value("${mqtt.clientId}") private String clientId; /** * 订é ä¸»é¢ */ // @Value("${mqtt.subscribe}") private String subscribe; /** * mqttè¿æ¥å¼å ³ */ private Boolean client; } cnas-device/src/main/java/com/ruoyi/device/mqtt/MQBean.java
@@ -6,9 +6,9 @@ @Component public class MQBean { @Bean("mqClient") // å¯å¨WEBæå¡å¨çæ¶åè°ç¨æ¤æ¹æ³åå§å public MQClient myMQTTClient(){ MQClient mqClient = new MQClient(); return mqClient; } // @Bean("mqClient") // å¯å¨WEBæå¡å¨çæ¶åè°ç¨æ¤æ¹æ³åå§å // public MQClient myMQTTClient(){ // MQClient mqClient = new MQClient(); // return mqClient; // } } cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java
@@ -1,15 +1,8 @@ package com.ruoyi.device.mqtt; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.ruoyi.device.constant.DCResistanceMqttConstants; import com.ruoyi.device.service.CollectBridgeService; import com.ruoyi.device.vo.DCResistanceMqttVO; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -17,17 +10,14 @@ import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.Objects; @Component @Slf4j public class MQCallback<component> implements MqttCallback { public class MQCallback implements MqttCallback { private MQClient mqClient; // MQTTè¿æ¥æ°æ® private final MQClient mqClient; // MQTTè¿æ¥æ°æ® private MQConfig mqConfig; // ymlé ç½®æ°æ® private final DeviceMqttConfig mqConfig; // ymlé ç½®æ°æ® private static MQCallback mqCallback; @@ -41,7 +31,7 @@ mqCallback.collectBridgeService = this.collectBridgeService; } public MQCallback(MQClient mqClient, MQConfig mqConfig) { public MQCallback(MQClient mqClient, DeviceMqttConfig mqConfig) { this.mqClient = mqClient; this.mqConfig = mqConfig; } @@ -74,17 +64,24 @@ * MQTTæå¡å¨åWEBæå¡å¨åéçæ°æ®ä¼æ§è¡å°è¿éé¢ï¼å®æ¹è¯ç§°ä¸ºï¼è®¢é åçæ¶æ¯ * @param topic 主é¢ï¼ä¹ç§°ä¸ºåºå±ç½å ³å¯ä¸æ è¯ * @param message ä¿¡æ¯ * @throws Exception æ¥é */ @Override public void messageArrived(String topic, MqttMessage message) throws Exception { public void messageArrived(String topic, MqttMessage message) { try { String parse = new String(message.getPayload()); // JSONObject jsonObject = JSONObject.parseObject(parse); switch (topic){ case "/ztt/v3/2455220/publish": //èä¸ï¼ç´æµçµé»æ°æ®è§£æ mqCallback.collectBridgeService.addBridgeValueByNS(parse); break; case "/ztt/v3/2455221/publish": //èä¸ï¼ä¼¸é¿çæ°æ®è§£æ log.info("伸é¿çæ¶æ¯ä½ï¼{}",parse); break; } // å¡«å ééæ°æ® // JSONObject jsonObject = JSONObject.parseObject(parse); // mqCallback.collectBridgeService.addBridgeValue(jsonObject); //èä¸ï¼ç´æµçµé»æ°æ®è§£æ mqCallback.collectBridgeService.addBridgeValueByNS(parse); } catch (Exception e) { e.printStackTrace(); cnas-device/src/main/java/com/ruoyi/device/mqtt/MQClient.java
@@ -52,13 +52,13 @@ * WEBæå¡å¨è¿æ¥MQTTæå¡å¨å½æ° * @param mqttConfig ymlä¸MQTTçé ç½® */ public void connect(MQConfig mqttConfig) throws MqttException { public void connect(DeviceMqttConfig mqttConfig) throws MqttException { client = new MqttClient(mqttConfig.getUrl(), mqttConfig.getClientId(), new MemoryPersistence()); MqttConnectOptions options = getOption(mqttConfig.getUsername(), mqttConfig.getPassword(), mqttConfig.getTimeout(), mqttConfig.getKeepAlive()); mqttConfig.getTimeout(), mqttConfig.getKeepalive()); MQClient.setClient(client); //è¿æ¥å¤±è´¥è°ç¨åè°å½æ°ï¼éæ°è¿æ¥ client.setCallback(new MQCallback<Object>(this, mqttConfig)); client.setCallback(new MQCallback(this, mqttConfig)); if (!client.isConnected()) { client.connect(options); // 订é ä¸»é¢ cnas-device/src/main/java/com/ruoyi/device/mqtt/MQConfig.java
@@ -1,64 +1,19 @@ package com.ruoyi.device.mqtt; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; @Component @Data @ConfigurationProperties(prefix = "") public class MQConfig { /** * MQTT-æå¡ç«¯-IP * 读åymlçmqtté ç½®ä¿¡æ¯ */ @Value("${mqtt.url}") private String url; private List<DeviceMqttConfig> mqtt; /** * MQTT-æå¡ç«¯-ç¨æ·å */ @Value("${mqtt.username}") private String username; /** * MQTT-æå¡ç«¯-å¯ç */ @Value("${mqtt.password}") private String password; /** * è¶ æ¶æ¶é´ */ @Value("${mqtt.timeout}") private int timeout; /** * å¿è·³æ£æµæ¶é´ */ @Value("${mqtt.keepalive}") private int keepAlive; /** * å¿è·³å çº§å« */ @Value("${mqtt.qos}") private int qos; /** * æå¡ç«¯è¿æ¥è¶ æ¶æ¶é´ */ @Value("${mqtt.completion-timeout}") private int completionTimeout; /** * clientId */ @Value("${mqtt.clientId}") private String clientId; /** * 订é ä¸»é¢ */ @Value("${mqtt.subscribe}") private String subscribe; } ruoyi-admin-ztns/src/main/java/com/ruoyi/web/MqttApplicationRunner.java
@@ -1,13 +1,16 @@ package com.ruoyi.web; import com.ruoyi.device.mqtt.DeviceMqttConfig; import com.ruoyi.device.mqtt.MQClient; import com.ruoyi.device.mqtt.MQConfig; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import java.util.Objects; @Component @Slf4j @@ -16,14 +19,18 @@ @Autowired private MQConfig mqConfig; @Value("${mqtt.client}") private Boolean client; // @Value("${mqtt.client}") // private Boolean client; @Override public void run(ApplicationArguments args) throws Exception { if (client) { MQClient mqttPushClient = new MQClient(); mqttPushClient.connect(mqConfig); public void run(ApplicationArguments args) throws MqttException { if(Objects.nonNull(mqConfig)){ for (DeviceMqttConfig deviceMqttConfig : mqConfig.getMqtt()) { if (deviceMqttConfig.getClient()) { MQClient mqttPushClient = new MQClient(); mqttPushClient.connect(deviceMqttConfig); } } } } } ruoyi-admin-ztns/src/main/resources/application-druid.yml
@@ -162,13 +162,24 @@ # 夿³¨ 18083å¯ç ï¼zttZTT123!@ mqtt: url: tcp://mqtt-ztt.zttiot.com:1883 # æå¡å¨ip username: 2455220 # MQTT-æå¡ç«¯-ç¨æ·å,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å password: 108300 # MQTT-æå¡ç«¯-å¯ç ï¼,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å¯ç timeout: 100 # è¶ æ¶æ¶é´ ï¼åä½ï¼ç§ï¼ keepalive: 60 # å¿è·³ ï¼åä½ï¼ç§ï¼ qos: 1 # å¿è·³å çº§å« completion-timeout: 3000 # è¿æ¥è¶ æ¶æ¶é´ï¼åä½ï¼ç§ï¼ clientId: ztns # clientId subscribe: /ztt/v3/2455220/publish # 订é ä¸»é¢ client: true # 妿å¼åéè¦å¯å¨æµè¯ï¼éè¦æ¹ä¸ºfalseä¸ç¶ä¼ä¸ç´æ¥é - url: tcp://mqtt-ztt.zttiot.com:1883 # æå¡å¨ip username: 2455220 # MQTT-æå¡ç«¯-ç¨æ·å,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å password: 108300 # MQTT-æå¡ç«¯-å¯ç ï¼,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å¯ç timeout: 100 # è¶ æ¶æ¶é´ ï¼åä½ï¼ç§ï¼ keepalive: 60 # å¿è·³ ï¼åä½ï¼ç§ï¼ qos: 1 # å¿è·³å çº§å« completion-timeout: 3000 # è¿æ¥è¶ æ¶æ¶é´ï¼åä½ï¼ç§ï¼ clientId: ztns01 # clientId subscribe: /ztt/v3/2455220/publish # 订é ä¸»é¢ client: true # 妿å¼åéè¦å¯å¨æµè¯ï¼éè¦æ¹ä¸ºfalseä¸ç¶ä¼ä¸ç´æ¥é - url: tcp://mqtt-ztt.zttiot.com:1883 # æå¡å¨ip username: 2455221 # MQTT-æå¡ç«¯-ç¨æ·å,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å password: 108295 # MQTT-æå¡ç«¯-å¯ç ï¼,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å¯ç timeout: 100 # è¶ æ¶æ¶é´ ï¼åä½ï¼ç§ï¼ keepalive: 60 # å¿è·³ ï¼åä½ï¼ç§ï¼ qos: 1 # å¿è·³å çº§å« completion-timeout: 3000 # è¿æ¥è¶ æ¶æ¶é´ï¼åä½ï¼ç§ï¼ clientId: ztns02 # clientId subscribe: /ztt/v3/2455221/publish # 订é ä¸»é¢ client: true # 妿å¼åéè¦å¯å¨æµè¯ï¼éè¦æ¹ä¸ºfalseä¸ç¶ä¼ä¸ç´æ¥é ruoyi-admin-ztns/src/main/resources/application-ztns.yml
@@ -163,13 +163,23 @@ # 夿³¨ 18083å¯ç ï¼zttZTT123!@ mqtt: url: tcp://mqtt-ztt.zttiot.com:1883 # æå¡å¨ip username: 2455220 # MQTT-æå¡ç«¯-ç¨æ·å,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å password: 108300 # MQTT-æå¡ç«¯-å¯ç ï¼,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å¯ç timeout: 100 # è¶ æ¶æ¶é´ ï¼åä½ï¼ç§ï¼ keepalive: 60 # å¿è·³ ï¼åä½ï¼ç§ï¼ qos: 1 # å¿è·³å çº§å« completion-timeout: 3000 # è¿æ¥è¶ æ¶æ¶é´ï¼åä½ï¼ç§ï¼ clientId: ztns # clientId subscribe: /ztt/v3/2455220/publish # 订é ä¸»é¢ client: true # 妿å¼åéè¦å¯å¨æµè¯ï¼éè¦æ¹ä¸ºfalseä¸ç¶ä¼ä¸ç´æ¥é - url: tcp://mqtt-ztt.zttiot.com:1883 # æå¡å¨ip username: 2455220 # MQTT-æå¡ç«¯-ç¨æ·å,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å password: 108300 # MQTT-æå¡ç«¯-å¯ç ï¼,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å¯ç timeout: 100 # è¶ æ¶æ¶é´ ï¼åä½ï¼ç§ï¼ keepalive: 60 # å¿è·³ ï¼åä½ï¼ç§ï¼ qos: 1 # å¿è·³å çº§å« completion-timeout: 3000 # è¿æ¥è¶ æ¶æ¶é´ï¼åä½ï¼ç§ï¼ clientId: ztns # clientId subscribe: /ztt/v3/2455220/publish # 订é ä¸»é¢ client: true # 妿å¼åéè¦å¯å¨æµè¯ï¼éè¦æ¹ä¸ºfalseä¸ç¶ä¼ä¸ç´æ¥é - url: tcp://mqtt-ztt.zttiot.com:1883 # æå¡å¨ip username: 2455221 # MQTT-æå¡ç«¯-ç¨æ·å,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å password: 108295 # MQTT-æå¡ç«¯-å¯ç ï¼,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å¯ç timeout: 100 # è¶ æ¶æ¶é´ ï¼åä½ï¼ç§ï¼ keepalive: 60 # å¿è·³ ï¼åä½ï¼ç§ï¼ qos: 1 # å¿è·³å çº§å« completion-timeout: 3000 # è¿æ¥è¶ æ¶æ¶é´ï¼åä½ï¼ç§ï¼ clientId: ztns # clientId subscribe: /ztt/v3/2455221/publish # 订é ä¸»é¢ client: true # 妿å¼åéè¦å¯å¨æµè¯ï¼éè¦æ¹ä¸ºfalseä¸ç¶ä¼ä¸ç´æ¥é