package com.huaxia.imes.mqtt; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; /** * @author zx * @since 2024年11月13日 * @Description 消费者回调 */ @Slf4j public class MqttConsumerCallBack implements MqttCallback { /** * 连接丢失 * @param throwable */ @Override public void connectionLost(Throwable throwable) { log.error("连接断开异常{}",throwable.getMessage()); } /** * 消息到达 * @param s * @param mqttMessage * @throws Exception */ @Override public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { log.info("收到消息主题信息:{}",s); log.info("收到消息内容:{}",new String(mqttMessage.getPayload())); log.info("收到消息质量:{}",mqttMessage.getQos()); log.info("收到消息是否重复:{}",mqttMessage.isDuplicate()); log.info("收到消息是否已发布:{}",mqttMessage.isRetained()); } /** * 消息发布成功的回馈 * @param iMqttDeliveryToken */ @Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { log.info("发布完成客户端信息{}", iMqttDeliveryToken.getClient()); log.info("发布完成主题信息{}", (Object) iMqttDeliveryToken.getTopics()); log.info("发布完成消息id{}", iMqttDeliveryToken.getMessageId()); } }