aijinhui
2023-11-15 19c431878bc5d3b06fbda3f3fa8ae5023790c837
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
@@ -1,5 +1,6 @@
package com.ruoyi.utils.mqtt;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sy.domain.ArdSyCarRtu;
import com.ruoyi.sy.mapper.ArdSyCarRtuMapper;
import com.ruoyi.sy.service.ArdSyCarRtuService;
@@ -26,10 +27,7 @@
    @Autowired
    private ArdSyCarRtuService ardSyCarRtuService;
    @Autowired
    private ISysConfigService sysConfigService;
//    @PostConstruct
    @PostConstruct
    public void init() {
        List<ArdSyCarRtu> rtus = ardSyCarRtuService.allCarTopicList();
        for (int i = 0; i < rtus.size(); i++) {
@@ -63,9 +61,10 @@
    }
    public MqttClient getMqttClient(String carId) throws MqttException {
        ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
        //获取电磁锁地址
        String mqttUrl = sysConfigService.selectConfigByKey("ElectromagneticLockUrl");
        MqttClient client = new MqttClient(mqttUrl,carId);
        String mqttUrl = carRtuService.url("ElectromagneticLockUrl");
        MqttClient client = new MqttClient(mqttUrl,carId+"mqTest");
        //log.debug("--创建"+carId+"号车辆电子锁mqtt客户端");
        return client;
    }
@@ -88,11 +87,17 @@
    public String publishCar(String carId,String topic,String message,String type) throws MqttException {
        MqttClient client = getMqttClient(carId);
        MqttConnectOptions options = getMqttConnectOptions();
        client.connect(options);
        MqttMessage msg = new MqttMessage(message.getBytes());
        msg.setQos(2);
        client.publish(topic,msg);
        try{
            client.publish(topic,msg);
        }catch (Exception e){
            log.debug("发布消息失败"+topic+"消息:"+msg);
            e.getMessage();
        }
        client.disconnect();
        return "发布"+type+"指令成功!";
        return topic+"发布"+type+"指令成功!消息:"+msg;
    }
}