1. 开放端口

EMQ X 默认提供 5 个 Listener,它们将占用以下端口:


端口说明
1883MQTT/TCP 协议端口
11883MQTT/TCP 协议内部端口,仅用于本机客户端连接
8883MQTT/SSL 协议端口
8083MQTT/WS 协议端口
8084MQTT/WSS 协议端口

云服务器可在安全组端口放行
云服务器端口放行
或者输入一下命令开放相应端口号
firewall-cmd --zone=public --add-port=1883-11883/tcp --permanent //永久
firewall-cmd --zone=public --add-port=1883-11883/tcp //临时
firewall-cmd --zone=public --add-port=1883/tcp --permanent // 永久开放1883端口
firewall-cmd --zone=public --remove-port=1883/tcp --permanent //永久关闭1883端口
firewall-cmd --reload // 在不改变状态的条件下重新加载防火墙--配置立即生效

注:使用宝塔的小伙伴切记不要忘记宝塔那边也同样需要端口放行

2. 下载MqttSDK

MqttSDK下载链接:MqttSDK
下载并解压导入到idea中
目录结构
核心抽象类:MessageHandler,用final修饰ServerMqttClient提高代码安全性。

3. 登录EMQ X 管理控制台

使用浏览器打开地址 http://服务器ip:18083 ,如需登录输入默认用户名admin 与默认密码 public ,登录进入 Dashboard
Dashboard
可以看到此时没有任何客户端连接上

4. 消息的发布订阅

执行main方法,再看Dashboard 客户端,此时可以看到有一个用户连接上来了【注:由于EMQ没有配置登录认证,匿名登录的话是所有用户都可以连接上来的】
执行main方法
java连接emq
在控制台点击WebSocket,订阅主题emq,QoS(0:最多一次的传输 /1:至少一次的传输 /2:只有一次的传输),这里为了保证消息必达,我们选择QoS=2
控制台WebSocket
修改代码:订阅的主题为java,发布message的主题为emq,执行main方法后同时在Dashboard点击发布订阅,可以看到控制台打印的日志,以及控制台收到的主题消息
JAVA
Dashboard
至此java连接EMQ,以及模拟主题消息的发布订阅就OK了!
【参考文档】EMQ官网链接:EMQ官网
返回上一级[Centos8.0-EMQ之搭建部署]:Centos8.0-EMQ之搭建部署
返回下一级[EMQ之数据持久化]


isWulongbo
228 声望26 粉丝

在人生的头三十年,你培养习惯,后三十年,习惯铸就你