From f4e20b2dc544a188d0591c901022383e84fa8e9e Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期一, 13 十一月 2023 17:31:03 +0800 Subject: [PATCH] 清淤电磁锁 --- ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java | 72 +++++++++++++++++++++++++---------- 1 files changed, 51 insertions(+), 21 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java index 3b88ad2..70d9196 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java +++ b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java @@ -29,29 +29,16 @@ @Autowired private ISysConfigService sysConfigService; - @PostConstruct +// @PostConstruct public void init() { - //鑾峰彇鐢电閿佸湴鍧� - String mqttUrl = sysConfigService.selectConfigByKey("ElectromagneticLockUrl"); List<ArdSyCarRtu> rtus = ardSyCarRtuService.allCarTopicList(); for (int i = 0; i < rtus.size(); i++) { ArdSyCarRtu rtu = rtus.get(i); 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閰嶇疆瀵硅薄"); + MqttClient client = getMqttClient(carId); + MqttConnectOptions options = getMqttConnectOptions(); client.setCallback(new MqttOnceCallback(client,options,subscribe,2)); // log.debug("--娣诲姞杞﹁締鐢电閿佸洖璋冨鐞嗙被"); client.connect(options); @@ -59,10 +46,53 @@ e.printStackTrace(); } } -// MqttConsumer mqttConsumer = new MqttConsumer(); -// for (int i = 0; i < topic.length; i++) { -// mqttConsumer.subscribe(topic[i],2); -// } -// log.info("mqtt璁㈤槄娓呮筏杞﹁締閿佷俊鎭細"+Arrays.toString(topic)); } + + public void subscribeCar(ArdSyCarRtu ardSyCarRtu){ + String carId = ardSyCarRtu.getCarId(); + String subscribe = ardSyCarRtu.getTopicSubscribe(); + try { + MqttClient client = getMqttClient(carId); + MqttConnectOptions options = getMqttConnectOptions(); + client.setCallback(new MqttOnceCallback(client,options,subscribe,2)); +// log.debug("--娣诲姞杞﹁締鐢电閿佸洖璋冨鐞嗙被"); + client.connect(options); + }catch (Exception e) { + e.printStackTrace(); + } + } + + public MqttClient getMqttClient(String carId) throws MqttException { + //鑾峰彇鐢电閿佸湴鍧� + String mqttUrl = sysConfigService.selectConfigByKey("ElectromagneticLockUrl"); + MqttClient client = new MqttClient(mqttUrl,carId); + //log.debug("--鍒涘缓"+carId+"鍙疯溅杈嗙數瀛愰攣mqtt瀹㈡埛绔�"); + return client; + } + + public MqttConnectOptions getMqttConnectOptions(){ + 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閰嶇疆瀵硅薄"); + return options; + } + + public String publishCar(String carId,String topic,String message,String type) throws MqttException { + MqttClient client = getMqttClient(carId); + MqttConnectOptions options = getMqttConnectOptions(); + MqttMessage msg = new MqttMessage(message.getBytes()); + msg.setQos(2); + client.publish(topic,msg); + client.disconnect(); + return "鍙戝竷"+type+"鎸囦护鎴愬姛锛�"; + } + } -- Gitblit v1.9.3