一、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