package com.zhitan.config.mqtt;
|
|
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
|
import org.springframework.beans.factory.annotation.Value;
|
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;
|
|
@Configuration
|
public class MqttConfig {
|
|
@Value("${spring.mqtt.broker-url}")
|
private String brokerUrl;
|
|
@Value("${spring.mqtt.username}")
|
private String username;
|
|
@Value("${spring.mqtt.password}")
|
private String password;
|
|
@Value("${spring.mqtt.timeout}")
|
private int timeout;
|
|
@Value("${spring.mqtt.keep-alive}")
|
private int keepAlive;
|
|
// 配置MQTT客户端工厂
|
@Bean
|
public MqttPahoClientFactory mqttClientFactory() {
|
DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
|
MqttConnectOptions options = new MqttConnectOptions();
|
options.setServerURIs(new String[]{brokerUrl});
|
options.setUserName(username);
|
options.setPassword(password.toCharArray());
|
options.setConnectionTimeout(timeout);
|
options.setKeepAliveInterval(keepAlive);
|
options.setAutomaticReconnect(true); // 自动重连
|
factory.setConnectionOptions(options);
|
return factory;
|
}
|
}
|