package com.doumee.core.mqtt.service;
|
|
import com.doumee.core.mqtt.config.MqttClientInit;
|
import com.doumee.core.mqtt.config.MqttConfig;
|
import com.doumee.service.business.DeviceService;
|
import com.doumee.service.business.DeviceSubcribeService;
|
import org.eclipse.paho.client.mqttv3.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* @author T14
|
*/
|
@Service
|
public class MqttPushCallback implements MqttCallback {
|
@Autowired
|
private DeviceSubcribeService deviceSubcribeService;
|
@Autowired
|
private MqttConfig mqttConfig;
|
//接收消息回调
|
@Override
|
public void connectionLost(Throwable cause) {
|
|
// 连接丢失后,一般在这里面进行重连
|
System.out.println("连接断开,重连中");
|
try {
|
MqttClientInit.refreshClient();
|
} catch (MqttException e) {
|
throw new RuntimeException(e);
|
}
|
}
|
|
@Override
|
public void deliveryComplete(IMqttDeliveryToken token) {
|
System.out.println("deliveryComplete---------" + token.isComplete());
|
}
|
|
@Override
|
public void messageArrived(String topic, MqttMessage message) throws Exception {
|
// subscribe后得到的消息会执行到这里面
|
System.out.println("接收消息主题 : " + topic);
|
System.out.println("接收消息Qos : " + message.getQos());
|
System.out.println("接收消息内容 : " + new String(message.getPayload()));
|
deviceSubcribeService.listener(new String(message.getPayload()),topic);
|
}
|
}
|