1.1 MQTT概述
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议特点是轻量、简单、开放和易于实现的。MQTT协议提供有序、无损、双向连接。
MQTT协议本身也是基于消费发布订阅模式,对于实现MQTT协议需要:客户端和服务器端。在MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。
1.2 MQTT术语
1 网络连接
连接客户端到服务端。
提供一种有序、无损、双向字节流方式。
2 应用消息
MQTT协议为应用跨网络运载的数据。MQTT传输应用消息是包含负荷数据、服务质量(QoS)、 一个属性组合及标题名称。
3客户端(Client)
使用MQTT的程序或设备,即为客户端:
打开服务器连接。
发布其他客户端关注的应用消息。
订阅其关注的应用消息。
取消订阅应用消息
关闭服务器连接。
4 服务端(Server)
一个程序或设备表作为发布、订阅应用消息客户端的中间协调者,即为服务端。作用包括:
接收客户端的网络连接。
接收客户端发布的应用消息。
处理客户端的订阅、取消订阅请求。
透传应用消息给匹配的客户端订阅者。
关闭客户端的网络连接。
5 会话(Session)
客户端和服务端有状态的 连接即为会话。部分会话整个连接期间都保持,部分会话只持续几个网络连接。
6 订阅(Subscription)
订阅包含主题过滤器和服务质量(Qos)。一个订阅只能与一个会话相关,但一个会话可以包含多个订阅。对话中的每个订阅都有不同主题过滤器。
7 主题名称(Topic Name)
应用消息附带的标签,用于服务订阅匹配,即为主题名称。
2.1 EMQ简介
EMQ是基于高并发的Erlang/OTP语言平台设计,支持百万级连接和分布式集群,发布订阅模式的开源MQTT消息服务器。完整支持MQTT V3.1/V3.1.1协议规范,扩展支持WebSocket、Stomp、CoAP、MQTT-SN或私有TCP协议
2.2 软件版本
目前采用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 二者从功能上对比的主要差异是:企业版多了消息存储、增强规则引擎、增强数据桥接等功能。
3.1 windows安装
1 进入官网下载zip包
https://www.emqx.cn/downloads#broker
2 把下载的EMQ解压到D盘,得到一个emqx文件夹,进入CMD命令
执行emqx start
3.2 linux安装
1 进入官网,选择下载安装包(以 CentOS 8为例)
2 安装
sudo yum install emqx-centos8-4.2.9-x86_64.rpm
3 安装完毕后,启动
sudo emqx start
4 查看状态:$ emqx_ctl status
3.3基本命令
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、 安装文件目录结构