EMQX
MQTT协议介绍
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的消息传输协议。它特别适用于物联网(IoT)设备之间的通信,因其轻量、高效、低带宽需求等特性,广泛应用于需要高实时性和高可靠性的场景中。
EMQX介绍
EMQX(原名EMQ)是一个开源的、高性能、分布式的MQTT消息中间件。它作为一个MQTT Broker,负责接收客户端设备发布的消息,并将这些消息转发给订阅了相应主题的其他客户端。EMQX支持大规模的并发连接和消息处理,非常适合物联网场景中的大规模设备通信需求 。
MQTTX介绍
MQTTX:客户端工具,用于连接EMQX服务器,模拟收纳消息。
部署启动EMQX
emqx文件夹:使用bin里面的emqx.md:(windows)
启动:emqx start
进入页面:localhos:18083
账号:admin,密码:public
如果连不上在bin目录下重置密码;
emqx start
emqx ctl admins passwd admin admin123
这里改为admin123
加密选择md5(举例)
连上后测试:
数据库查询:(存在mqtt_user表)
update mqtt_user set password = md5(‘123456’)
在MQTTX中连接测试。
springboot整合mqtt
springboot中实现客户端,和MQTTX中创建的客户端功能一致
项目依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
</dependency>
配置类:MQTTX连接属性+ip+端口号(1883)+ 超时+是否自动重连+是否清理会话
注意:http协议是18083,mqtt协议是1883
@Data
@ConfigurationProperties(prefix = "qf.emqx.mqtt")
public class MqttProperties {
private String host = "localhost"; //EMQX服务器主机地址
private int port = 1883; //EMQX服务器端口
private String username; //连接EMQX服务器的账号
private String password