基于SpringBoot实现MQTT消息收发
- 实验环境
SpringBoot 2.2.2.RELEASE: 项目框架
EMQX community latest: MQTT 服务端
Docker 18.0.~: 部署容器
- POM引入依赖包
#pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-stream</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
- Mqtt配置代码及YAML配置
@Data
@Component
@ConfigurationProperties(prefix = "mqtt")
public class MqttConfiguration {
private int keepAliveInterval;
private int connectionTimeout;
private String userName;
private String userPassword;
private List<String> uris;
private List<String> topics;
private int qos;
public MqttConnectOptions connectionOptions() {
MqttConnectOptions options = new MqttConnectOptions();
options.setServerURIs(getUris().toArray(new String[0]));
options.setPassword(getUserPassword().toCharArray());
options.