|
|
|
@ -1,11 +1,9 @@
|
|
|
|
|
package cc.yunxi.utils;
|
|
|
|
|
|
|
|
|
|
import cc.yunxi.domain.po.Client;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.eclipse.paho.client.mqttv3.*;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.concurrent.atomic.AtomicLong;
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class MyMqttCallback implements MqttCallbackExtended {
|
|
|
|
@ -20,9 +18,11 @@ public class MyMqttCallback implements MqttCallbackExtended {
|
|
|
|
|
@Override
|
|
|
|
|
public void connectionLost(Throwable throwable) {
|
|
|
|
|
log.error("mqtt connectionLost 连接断开,5S之后尝试重连: {}", throwable.getMessage());
|
|
|
|
|
throwable.printStackTrace();
|
|
|
|
|
try {
|
|
|
|
|
mqttClient.reconnect();
|
|
|
|
|
} catch (MqttException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
}
|
|
|
|
|
// AtomicLong reconnectTimes = new AtomicLong(1);
|
|
|
|
@ -51,7 +51,9 @@ public class MyMqttCallback implements MqttCallbackExtended {
|
|
|
|
|
// 接受成功
|
|
|
|
|
@Override
|
|
|
|
|
public void messageArrived(String topic, MqttMessage mqttMessage) {
|
|
|
|
|
log.info("接收到MQTT消息,主题:{},消息体:{}", topic, mqttMessage.getPayload().toString());
|
|
|
|
|
byte[] payload = mqttMessage.getPayload();
|
|
|
|
|
String message = new String(payload, StandardCharsets.UTF_8);
|
|
|
|
|
log.info("接收到MQTT消息,主题:{},消息体:{}", topic, message);
|
|
|
|
|
// topicHandler.handleTopic(topic, mqttMessage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -61,7 +63,12 @@ public class MyMqttCallback implements MqttCallbackExtended {
|
|
|
|
|
log.info("==========deliveryComplete={}==========", iMqttDeliveryToken.isComplete());
|
|
|
|
|
log.info("消息发送完成,消息ID:{}", iMqttDeliveryToken.getMessageId());
|
|
|
|
|
try {
|
|
|
|
|
log.info("消息发送完成,消息内容:{}", iMqttDeliveryToken.getMessage().getPayload().toString());
|
|
|
|
|
MqttMessage message = iMqttDeliveryToken.getMessage();
|
|
|
|
|
if(null != message){
|
|
|
|
|
byte[] payload = message.getPayload();
|
|
|
|
|
String content = new String(payload, StandardCharsets.UTF_8);
|
|
|
|
|
log.info("消息发送完成,返回消息内容:{}", content);
|
|
|
|
|
}
|
|
|
|
|
} catch (MqttException e) {
|
|
|
|
|
log.error("获取消息内容失败,原因:{}", e.getMessage());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|