|
|
|
|
@ -4,6 +4,7 @@ package com.rehome.mqttclienttemperature;
|
|
|
|
|
import com.rehome.mqttclienttemperature.service.TemperatureService;
|
|
|
|
|
import com.rehome.mqttclienttemperature.utils.MqttSSLSocketFactory;
|
|
|
|
|
import com.rehome.mqttclienttemperature.utils.UUIDUtil;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.eclipse.paho.client.mqttv3.*;
|
|
|
|
|
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
|
|
|
|
|
|
|
|
|
|
@ -14,7 +15,7 @@ import java.util.Date;
|
|
|
|
|
import java.util.Timer;
|
|
|
|
|
import java.util.TimerTask;
|
|
|
|
|
|
|
|
|
|
// Xiaomi_8B2C
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class MqttRSAClient {
|
|
|
|
|
/**
|
|
|
|
|
* 代理服务器ip地址
|
|
|
|
|
@ -93,7 +94,7 @@ public class MqttRSAClient {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void connectionLost(Throwable throwable) {
|
|
|
|
|
System.out.println("connectionLost");
|
|
|
|
|
log.info("connectionLost");
|
|
|
|
|
try {
|
|
|
|
|
mqttClient.reconnect();
|
|
|
|
|
} catch (MqttException e) {
|
|
|
|
|
@ -104,15 +105,15 @@ public class MqttRSAClient {
|
|
|
|
|
@Override
|
|
|
|
|
public void messageArrived(String s, MqttMessage mqttMessage) {
|
|
|
|
|
String strData = new String(mqttMessage.getPayload());
|
|
|
|
|
System.out.println("topic:"+s);
|
|
|
|
|
System.out.println("Qos:"+mqttMessage.getQos());
|
|
|
|
|
System.out.println("message RSA:"+strData);
|
|
|
|
|
log.info("topic:"+s);
|
|
|
|
|
log.info("Qos:"+mqttMessage.getQos());
|
|
|
|
|
log.info("message RSA:"+strData);
|
|
|
|
|
temperatureService.saveTemperature(strData,s);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
|
|
|
|
|
System.out.println("deliveryComplete---------"+ iMqttDeliveryToken.isComplete());
|
|
|
|
|
log.info("deliveryComplete---------"+ iMqttDeliveryToken.isComplete());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ -128,17 +129,17 @@ public class MqttRSAClient {
|
|
|
|
|
timer = new Timer();
|
|
|
|
|
timer.schedule(new TimerTask() {
|
|
|
|
|
public void run() {
|
|
|
|
|
System.out.println("-------设定要指定任务--------");
|
|
|
|
|
log.info("-------设定要指定任务--------");
|
|
|
|
|
try {
|
|
|
|
|
//判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的
|
|
|
|
|
if (!mqttClient.isConnected()) {
|
|
|
|
|
System.out.println("***** 没有连接到服务器 *****");
|
|
|
|
|
System.out.println("***** client to connect *****");
|
|
|
|
|
log.info("***** 没有连接到服务器 *****");
|
|
|
|
|
log.info("***** client to connect *****");
|
|
|
|
|
// 重新连接
|
|
|
|
|
mqttClient.connect(options);
|
|
|
|
|
}
|
|
|
|
|
if (mqttClient.isConnected()) {//连接成功,跳出连接
|
|
|
|
|
System.out.println("***** connect success *****");
|
|
|
|
|
log.info("***** connect success *****");
|
|
|
|
|
}
|
|
|
|
|
} catch (MqttException e1) {
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
|