MQTT 是基於 發佈(Publish)/訂閱(Subscribe) 模式來進行通訊及數據交換的,與 HTTP 的 請求(Request)/應答(Response) 的模式有本質的不一樣。git
訂閱者(Subscriber) 會向 消息服務器(Broker) 訂閱一個 主題(Topic) 。成功訂閱後,消息服務器會將該主題下的消息轉發給全部的訂閱者。github
主題(Topic)以 ‘/’ 爲分隔符區分不一樣的層級。包含通配符 ‘+’ 或 ‘#’ 的主題又稱爲 主題過濾器(Topic Filters),不含通配符的稱爲 主題名(Topic Names) 。例如:數據庫
sensor/1/temperature sensor/1/# sensor/+/temperature
MQTT Broker 也稱爲 MQTT 消息服務器,它能夠是運行了 MQTT 消息服務器軟件的一臺服務器或一個服務器集羣。MQTT Broker 負責接收來自客戶端的網絡鏈接,並處理客戶端的訂閱/取消訂閱(Subscribe/Unsubscribe)、消息發佈(Publish)請求,同時也會將客戶端發佈的消息轉發給其餘訂閱者。瀏覽器
MQTT Broker 普遍應用於:電力、新能源、智慧城市、智能家居、智能抄表、車聯網、金融與支付、運營商等行業。安全
mosquitto_pub
、mosquitto_sub
命令行客戶端。Mosquitto 比較輕量,適合在從低功耗單板計算機到完整服務器的全部設備上使用。多服務器節點集羣,且支持節點的自動發現。相對於單服務器,集羣能經過多臺服務器之間的協做帶來如下優點:服務器
數據持久化的主要使用場景包括將客戶端上下線狀態,訂閱主題信息,消息內容,消息抵達後發送消息回執等操做記錄到 Redis、MySQL、PostgreSQL、MongoDB、Cassandra 等各類數據庫中。網絡
爲了方便測試,咱們使用 EMQ 提供的線上版 Broker,該 Broker 版本包含了 EMQ X Enterprise 的全部功能。併發
Broker 地址: broker.emqx.ioBroker 端口: 188三、8883(SSL)、8083(Websocket)、8084(WSS)負載均衡
鏈接客戶端咱們使用 EMQ 提供的線上版 Websocket 工具:http://tools.emqx.io。socket
使用瀏覽器打開地址 http://tools.emqx.io,點擊左下角的 New Connection 按鈕,並在右側框裏填寫連接信息,填寫好必填字段後點擊 Connect 按鈕建立連接並鏈接至 Broker。
鏈接成功後,點擊右下角的 Write a message 彈出消息發佈框,填寫好 Topic 及 Payload 後點擊發送圖標便可發佈消息。
在中間的 Subscriptions 模塊裏,訂閱 hello 主題。此時給 hello 主題發送消息的話,消息列表裏會收到該消息(左側爲接收到的消息)。
訂閱通配符主題 testtopic/#,並給 testtopic/1 主題發送消息,此時消息列表裏會接收到該消息。
更多信息請訪問咱們的官網 emqx.io,或關注咱們的開源項目 github.com/emqx/emqx ,詳細文檔請訪問 官方文檔。