JAVA连接EMQ实现发布订阅

1. 开放端口

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


端口 说明
1883 MQTT/TCP 协议端口
11883 MQTT/TCP 协议内部端口,仅用于本机客户端连接
8883 MQTT/SSL 协议端口
8083 MQTT/WS 协议端口
8084 MQTT/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中
JAVA连接EMQ实现发布订阅_第1张图片
核心抽象类:MessageHandler,用final修饰ServerMqttClient提高代码安全性。

3. 登录EMQ X 管理控制台

使用浏览器打开地址 http://服务器ip:18083 ,如需登录输入默认用户名admin 与默认密码 public ,登录进入 Dashboard
JAVA连接EMQ实现发布订阅_第2张图片
可以看到此时没有任何客户端连接上

4. 消息的发布订阅

执行main方法,再看Dashboard 客户端,此时可以看到有一个用户连接上来了【注:由于EMQ没有配置登录认证,匿名登录的话是所有用户都可以连接上来的】
JAVA连接EMQ实现发布订阅_第3张图片
至此java连接EMQ,以及模拟主题消息的发布订阅就OK了!
【参考文档】EMQ官网链接:EMQ官网
返回上一级[Centos8.0-EMQ之搭建部署]:Centos8.0-EMQ之搭建部署
返回下一级[EMQ之数据持久化]

你可能感兴趣的