package org.jeecg.modules.dry.mqtt; import cn.hutool.core.thread.ThreadUtil; import com.alibaba.fastjson.JSONObject; import lombok.Data; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.springframework.stereotype.Component; @Component @Data public class MqttUtil { public MqttClient mqttClient; /** * 发送消息 * * @param topic 订阅 * @param mqMessage 消息体 * @param type 1-发送给租户 2-发送给固定id */ public void sendMqttMessage(String topic, MqMessage mqMessage, Integer type) { ThreadUtil.execute(() -> { try { if (type == 1) { MqttMessage sendMessage = new MqttMessage(JSONObject.toJSONString(mqMessage).getBytes()); sendMessage.setQos(0); mqttClient.publish(String.format(topic, mqMessage.getTentId()), sendMessage); } else if (type == 2) { MqttMessage sendMessage = new MqttMessage(JSONObject.toJSONString(mqMessage).getBytes()); sendMessage.setQos(0); mqttClient.publish(topic, sendMessage); } } catch (Exception e) { e.printStackTrace(); } }); } }