MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议特点是轻量、简单、开放和易于实现的。MQTT协议提供有序、无损、双向连接。
MQTT协议本身也是基于消费发布订阅模式;对于实现MQTT协议需要;客户端和服务器端。在MQTT协议中有三种身份;发布者;Publish;、代理;Broker;;服务器;、订阅者;Subscribe;。
1 网络连接
连接客户端到服务端。
提供一种有序、无损、双向字节流方式。
2 应用消息
MQTT协议为应用跨网络运载的数据。MQTT传输应用消息是包含负荷数据、服务质量(QOS)、 一个属性组合及标题名称。
3客户端(Client)
使用MQTT的程序或设备;即为客户端;
打开服务器连接。
发布其他客户端关注的应用消息。
订阅其关注的应用消息。
取消订阅应用消息
关闭服务器连接。
4 服务端(Server)
一个程序或设备表作为发布、订阅应用消息客户端的中间协调者;即为服务端。作用包括;
接收客户端的网络连接。
接收客户端发布的应用消息。
处理客户端的订阅、取消订阅请求。
透传应用消息给匹配的客户端订阅者。
关闭客户端的网络连接。
5 会话(Session)
客户端和服务端有状态的 连接即为会话。部分会话整个连接期间都保持;部分会话只持续几个网络连接。
6 订阅(Subscription)
订阅包含主题过滤器和服务质量(Qos)。一个订阅只能与一个会话相关;但一个会话可以包含多个订阅。对话中的每个订阅都有不同主题过滤器。
7 主题名称(Topic Name)
应用消息附带的标签;用于服务订阅匹配;即为主题名称。
EMQ是基于高并发的Erlang/OTP语言平台设计;支持百万级连接和分布式集群;发布订阅模式的开源MQTT消息服务器。完整支持MQTT V3.1/V3.1.1协议规范;扩展支持WebSocket、Stomp、CoAP、MQTT-SN或私有TCP协议
目前采用EMQ官网提供的v4.2.9 EMQ X Broker版本.。
EMQ X Broker;EMQ X 开源版;提供 MQTT 协议、CoAP 和 LwM2M 等常见物联网协议的支持;支持 10 万级的并发连接。
EMQ X Broker和EMQ X Enterpris的区别;
1 EMQ X Broke是开源的且是完全免费的;EMQ X Enterpris则是收费的;企业版;
2 二者从性能上对比的主要差异是;十万级和百万级的差异。
3 二者从功能上对比的主要差异是;企业版多了消息存储、增强规则引擎、增强数据桥接等功能。
1 进入官网下载zip包
https://www.emqx.cn/downloads#broker
2 把下载的EMQ解压到D盘;得到一个emqx文件夹;进入CMD命令
执行emqx start
1 进入官网;选择下载安装包;以 CentOS 8为例;
2 安装
sudo yum install emqx-centos8-4.2.9-x86_64.rpm
3 安装完毕后;启动
sudo emqx start
4 查看状态;$ emqx_ctl status
EMQ X 提供了 emqx 命令行工具;方便用户对 EMQ X 进行启动、关闭、进入控制台等操作。
emqx start;启动
emqx stop;停止
emqx restart:;重启
emqx console;使用控制台启动 EMQ X Broker
1、 Dashboard管理页面
通过 Dashboard;你可以查看服务器基本信息、负载情况和统计数据;可以查看某个客户端的连接状态等信息甚至断开其连接;也可以动态加载和卸载指定插件。
访问浏览器地址http://localhost:18083
用户名;admin
密码;public
2、EMQ 默认提供 5 个 Listener;它们将占用以下端口;
端口 说明
1883 MQTT/TCP 协议端口
11883 MQTT/TCP 协议内部端口;仅用于本机客户端连接
8883 MQTT/SSL 协议端口
8083 MQTT/WS 协议端口
8084 MQTT/WSS 协议端口
3、 安装文件目录结构
Neuron v2.2.2 发布:MQTT插件功能提升 、新增OPC DA驱动