package com.doumee.core.mqtt.service; import com.doumee.config.SpringContextUtil; 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("连接断开,重连中"); MqttClientInit.isNeedReSub =true; MqttClientInit.refreshClient(); } @Override public void deliveryComplete(IMqttDeliveryToken token) { System.out.println("deliveryComplete---------" + token.isComplete()); } @Override public void messageArrived(String topic, MqttMessage message) throws Exception { // subscribe后得到的消息会执行到这里面 try { System.out.println("接收消息主题 : " + topic); System.out.println("接收消息Qos : " + message.getQos()); System.out.println("接收消息内容 : " + new String(message.getPayload())); deviceSubcribeService.listener(message.getId()+"",new String(message.getPayload()),topic); }catch (Exception e){ e.printStackTrace(); } } }