1.EMQX 简介
EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。
EMQ官网:https://www.emqx.cn/
为什么选择EMQ X ?从支持 MQTT5.0、稳定性、扩展性、集群能力等方面考虑,EMQX 的表现应该是最好的。
EMQX的特点
- EMQ X 目前为开源社区中最流行的 MQTT 消息中间件;
- EMQ X 是开源社区中第一个支持 5.0协议规范的消息服务器,并且完全兼容 MQTT V3.1 和 V3.1.1 协议。
- 除了 MQTT 协议之外,EMQ X 还支持MQTT-SN、CoAP、 LwM2M、LoRaWAN 和 WebSocket 等物联网协议
- 单机支持百万连接,集群支持千万级连接;毫秒级消息转发。
- 易于安装和使用;
- 中国本地的技术支持服务;
- 扩展模块和插件,EMQ X 提供了灵活的扩展机制,支持企业的一些定制场景;
- 桥接
- 共享订阅
2.环境搭建与配置
Docker 运行与安装
拉取emqx镜像
[root@docker emqx]# docker pull emqx/emqx:v4.1.0
创建emqx容器
[root@docker emqx]# docker run -tid --name emqx -p 1883:1883 -p 8083:8083 -p 8081:8081 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.1.0
EMQ X 目录结构
3.EMQDashboard
EMQ X 提供了 Dashboard 以方便用户管理设备与监控相关指标。
通过 Dashboard可以查看服务器基本信息、负载情况和统计数据,可以查看某个客户端的连接状态等信息甚至断开其连接,也可以动态加载和卸载指定插件。
访问地址 http://192.168.150.102:18083 来查看Dashboard,**默认用户名是 admin,密码是 public*
4.客户端调试工具MQTTX
MQTT X 是 EMQ 开源的一款优雅的跨平台 MQTT 5.0 桌面客户端,它支持 macOS, Linux, Windows。
MQTT X 的 UI 采用了聊天界面形式,简化了页面操作逻辑,用户可以快速创建连接,允许保存多个客户端,方便用户快速测试 MQTT/MQTTS 连接,及 MQTT 消息的订阅和发布。
5.延迟消息
EMQ X 的延迟发布功能可以实现按照用户配置的时间间隔延迟发布 PUBLISH 报文的功能。模块开启emqx_mod_delayed
延迟发布主题的具体格式如下:
$delayed/{DelayInterval}/{TopicName}
– 使用delayed 作为主题前缀的消息都将被视为需要延迟发布的消息。
– {DelayInterval}: 指定该 MQTT 消息延迟发布的时间间隔,单位是秒,允许的最大间隔是 4294967 秒。
– {TopicName}: MQTT 消息的主题名称。
1.在Websocket上订阅主题:t2/a
2.在Websocket上发布消息主题:topic: $delayed/10/t2/a
观察运行效果
6.共享订阅
不带群组的共享订阅
格式:
$queue/{TopicName}
带群组的共享订阅
格式:
$share/<group-name>/{TopicName}