1. 主要实现功能
- 自动配置
- 消息自动解析
- 消息分组共享订阅
- 消息不分组共享订阅
- 消息排它订阅
- 延时发布
- 多数据源
4. 快速开始
4.1 引入依赖
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
4.2 配置
spring:
mqtt:
emq:
client:
# 多数据源客户端名称,默认default
default:
# broker地址
host: 127.0.0.1
# 端口
port: 31883
# 用户名
username: admin
# 密码
password: 123456
更多配置如下
spring:
mqtt:
emq:
client:
# 多数据源客户端名称,默认default
default:
# broker地址
host: 127.0.0.1
# 端口
port: 31883
# 用户名
username: admin
# 密码
password: 123456
# 客户端标识,需保持全局唯一
client-id: parking_server
# 是否清除session
clean-session: false
# 连接超时时间,单位秒
connection-timeout: 10
# 心跳间隔时间,单位秒
keep-alive-interval: 10
# 全局消息质量
global-qos: 1
# 重新连接之间等待的最长时间
maxReconnect-delay: 128000
# 是否自动重新连接
automatic-reconnect: true
# 最大消息并发数量,超过此数量并发时可能会丢消息
maxInflight: 1000
4.3 开启自动配置
在启动类上增加@EnableRabbitMqAutoConfiguration注解
import com.demo.mqttclient.anno.EnableEmqAutoConfiguration;
@SpringBootApplication
@EnableEmqAutoConfiguration
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
4.4 发布消息
在生产者的业务程序中,注入MQTTClient
import com.demo.mqttclient.MQTTClient;
@Resource
private MQTTClient defaultMQTTClient;
为了兼容第三方及优化内部使用逻辑,所以内置提供了两种消息发送方式。
4.4.1 第三方消息发送
public String publishHeartbeatReply() {
HeartbeatReplyMessage heartbeatReplyMessage = new HeartbeatReplyMessage();
heartbeatReplyMessage.setCmd(32896);
heartbeatReplyMessage.setExpire(1605252875L);
heartbeatReplyMessage.setDevid("095437323930030130523933");
heartbeatReplyMessage.setServer_time("1605252875");
defaultMQTTClient.publish2ThirdParty("npt/park/type1/dev/095437323930030130523933", 1, heartbeatReplyMessage);
return "success";
}
4.4.2 内部消息发送
消息实体实现Message接口
package com.example.test.message;
import com.demo.mqttclient.MQTTMessage;
import lombok.Data;
import java.util.UUID;
@Data
public class demoMessage implements MQTTMessage {

本文介绍如何配置和使用 EMQ MQTT 客户端,包括依赖引入、客户端配置、消息发布与订阅等功能,并详细解释了如何实现延迟消息发送、多数据源配置、分组共享订阅等高级特性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



