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;
|
}
|
}
|