package com.thhy.screen.config; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MqttClientConfig { private Logger logger = LoggerFactory.getLogger("MQTT初始化"); @Bean public MqttClient createClient(MqttConfig mqttConfig){ MemoryPersistence persistence = new MemoryPersistence(); MqttClient client = null; try { client = new MqttClient(mqttConfig.getBroker(), mqttConfig.getClientId(), persistence); } catch (MqttException e) { logger.error("MQTT客户端初始化错误"); return null; } logger.error("MQTT客户端初始化正常"); MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setUserName(mqttConfig.getUsername()); connOpts.setPassword(mqttConfig.getPassword().toCharArray()); // 保留会话 connOpts.setCleanSession(true); // 设置回调 client.setCallback(new OnMqttCallBack()); try { client.connect(connOpts); } catch (MqttException e) { logger.error("MQTT客户端连接出现错误"+e.getMessage()); return client; } logger.error("MQTT客户端连接成功"); // 订阅 try { client.subscribe(mqttConfig.getSubTopic()); logger.error("MQTT客户端订阅["+mqttConfig.getSubTopic()+"]成功"); } catch (MqttException e) { logger.error("MQTT客户端订阅["+mqttConfig.getSubTopic()+"]失败"+e.getMessage()); return client; } return client; } }