一、MQTT概述
1.什么是MQTT
MQTT是一种基于“发布订阅“”模式的消息传输协议。
消息:设备和设备之间传输的数据,或者服务和服务之间要传输的数据。
协议:传输数据时所遵循的规范。
2.常见的通讯模式
(1)客户端-服务器端:客户端和服务器端需要直接建立连接
(2)发布订阅模式:发布者和订阅者不需要直接建立连接
将发布者和订阅者进行隔离:
①.空间上的隔离。
②.时间上的隔离。
3.MQTT的特点
(1)轻量级:MQTT协议占用的系统资源较少,数据报文较少。
(2)可靠性较强:提供了多种消息的质量等级。
(3)安全性较强:提供传输层和套阶层加密功能
(4)双向通信:MQTT客户端既可以发送数据,也可以从代理软件中获取数据
(5)多语言支持: PHP、Node.js、Python、Golang、、java
因为这些特点,MQTT协议常用在物联网行业。
4.MQTT的常见概念
(1)MQTT的客户端
任何运行MQTT客户端库(MQTT开发工具包)的应用都是MQTT客户端。
(2)MQTT Broker
实现MQTT通讯软件的代理软件。
(3)主题
存在于MQTT Broker中的,一个普通的字符串,使用主题来对消息进行分类的。
二、MQTT快速入门
1.常用的代理软件 Broker
2. Windows安装EMQX
(1)下载EMQX
5.3.2版本以后就没有提供Windows系统软件包
5.3.2版本下载地址: https://www.emqx.com/zh/downloads/broker/v5.3.2
(2)创建EMQX文件夹,解压文件
解压后的目录如下:
(3)启动EMQX
进入bin文件夹,执行cmd
输入启动命令
emqx start
(4)配置文件
需在 EMQX 安装目录下的 etc 文件夹中的 emqx.conf 文件添加 listeners.tcp 配置项。
例如,若要启用端口 1883 上的 TCP 监听器,并设置监听器最多允许 1,024,000 个并发连接,可使用以下配置:
listeners.tcp.default {
bind = "0.0.0.0:1883"
max_connections = 1024000
}
配置说明:
listeners.tcp.default 代表启用该监听器,default 为监听器名称,可根据需要更改。
bind 设定监听器的 IP 地址及端口,此处配置为监听所有 IP 地址上的 1883 端口的所有传入流量。
max_connections 设置监听器允许的最大并发连接数,默认值为 infinity。
3.访问EMQX Dashborad
(1)服务启动后访问18083端口
本地的地址:http://localhost:18083/
账号:admin
密码:public
这里我在虚拟机里部署的EMQX,查看虚拟机IP地址+":18083"端口也可以。
默认网络端口:
SSL监听端口:8883
TCP监听端口:1883
WebSocker 监听端口:8083
WebSocket Secure 监听端口 :8084