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();
|
}
|
});
|
}
|
|
}
|