package com.dji.sample.component.mqtt.config;
|
|
import lombok.Data;
|
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory;
|
import org.springframework.integration.mqtt.core.MqttPahoClientFactory;
|
|
/**
|
*
|
* @author sean.zhou
|
* @date 2021/11/10
|
* @version 0.1
|
*/
|
@Configuration
|
@Data
|
@ConfigurationProperties(prefix = "mqtt")
|
public class MqttConfiguration {
|
|
private String protocol;
|
|
private String host;
|
|
private Integer port;
|
|
private String username;
|
|
private String password;
|
|
private String clientId;
|
|
/**
|
* The topic to subscribe to immediately when client connects.
|
*/
|
private String inboundTopic;
|
|
@Bean
|
public MqttConnectOptions mqttConnectOptions() {
|
MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
|
mqttConnectOptions.setServerURIs(new String[]{
|
new StringBuilder()
|
.append(protocol.trim())
|
.append("://")
|
.append(host.trim())
|
.append(":")
|
.append(port)
|
.toString()});
|
mqttConnectOptions.setUserName(username);
|
mqttConnectOptions.setPassword(password.toCharArray());
|
mqttConnectOptions.setAutomaticReconnect(true);
|
mqttConnectOptions.setKeepAliveInterval(10);
|
return mqttConnectOptions;
|
}
|
|
@Bean
|
public MqttPahoClientFactory mqttClientFactory() {
|
DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
|
factory.setConnectionOptions(mqttConnectOptions());
|
return factory;
|
}
|
}
|