MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
生活随笔
收集整理的這篇文章主要介紹了
MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原版地址:http://blog.csdn.net/xukai871105/article/details/39252653
0 前言
MQTT是IBM開發的一個即時通訊協議。MQTT是面向M2M和物聯網的連接協議,采用輕量級發布和訂閱消息傳輸機制。Mosquitto是一款實現了 MQTT v3.1 協議的開源消息代理軟件,提供輕量級的,支持發布/訂閱的的消息推送模式,使設備對設備之間的短消息通信簡單易用。 若初次接觸MQTT協議,可先理解以下概念: 【MQTT協議特點】——相比于RESTful架構的物聯網系統,MQTT協議借助消息推送功能,可以更好地實現遠程控制。 【MQTT協議角色】——在RESTful架構的物聯網系統,包含兩個角色客戶端和服務器端,而在MQTT協議中包括發布者,代理器(服務器)和訂閱者。 【MQTT協議消息】——MQTT中的消息可理解為發布者和訂閱者交換的內容(負載),這些消息包含具體的內容,可以被訂閱者使用。 【MQTT協議主題】——MQTT中的主題可理解為相同類型或相似類型的消息集合。1 安裝和使用注意點
1.1 安裝
截止2015年12月,最新版本為mosquitto-1.4.5
# 下載源代碼包 wget?http://mosquitto.org/files/source/mosquitto-1.4.5.tar.gz # 解壓 tar zxfv mosquitto-1.4.5.tar.gz # 進入目錄
cd mosquitto-1.4.5
# 編譯 make # 安裝
sudo make install
1.2 安裝注意點 【1】編譯找不到openssl/ssl.h
【解決方法】——安裝openssl sudo apt-get install libssl-dev
【2】編譯過程找不到ares.h sudo?apt-get?install?libc-ares-dev 【3】編譯過程找不到uuid/uuid.h sudo apt-get install uuid-dev 【4】使用過程中找不到libmosquitto.so.1 error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
【解決方法】——修改libmosquitto.so位置
# 創建鏈接 sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1 # 更新動態鏈接庫 sudo ldconfig 【5】make: g++:命令未找到 ? 【解決方法】 安裝g++編譯器 sudo apt-get install g++
2 簡單測試 一個完整的MQTT示例包括一個代理器,一個發布者和一個訂閱者。測試分為以下幾個步驟: 【1】啟動服務mosquitto。 【2】訂閱者通過mosquitto_sub訂閱指定主題的消息。 【3】發布者通過mosquitto_pub發布指定主題的消息。 【4】代理服務器把該主題的消息推送到訂閱者。
【測試說明】 測試環境:ubuntu 14.04 虛擬機 在本例中,發布者、代理和訂閱者均為localhsot,但是在實際的情況下三種并不是同一個設備,在mosquitto中可通過-h(--host)設置主機名稱(hostname)。為了實現這個簡單的測試案例,需要在linux中打開三個控制臺,分別代表代理服務器、發布者和訂閱者。
圖1 示例 2.1 啟動代理服務 mosquitto -v 【-v】打印更多的調試信息
2.2 訂閱主題 mosquitto_sub -v -t sensor
【-t】指定主題,此處為sensor
【-v】打印更多的調試信息
2.3 發布內容 mosquitto_pub -t sensor ?-m 12
【-t】指定主題 【-m】指定消息內容
2.4 運行結果 當發布者推送消息之后,訂閱者獲得以下內容
sensor 12 而代理服務器控制臺中會出現——連接、消息發布和心跳等調試信息。通過代理服務器的調試輸出可以對MQTT協議的相關過程有所了解。
圖2 代理服務器調試輸出
3 總結 通過Mosquitto實現MQTT協議代理器(服務器),為今后的MQTT協議應用做準備。本文并沒有分析MQTT協議的種種細節,但是希望通過一個簡單的例子把MQTT協議“使用起來”,通過使用過程來理解MQTT協議,在過程中關注細節收集疑問,再閱讀MQTT協議具體內容,這樣學習起來就不至于枯燥乏味(即使MQTT協議只有40多頁,但是初次閱讀我還是沒能理解其內涵,只能怪自己智商太低,學術不精。)
4 參考資料 【1】Mosquitto簡要教程(安裝/使用/測試) 【2】解決編譯過程中找不到ares.h的問題 【3】解決使用過程中找不到libmosquitto.so.1的問題
總結
以上是生活随笔為你收集整理的MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ESP8266编译脚本之五
- 下一篇: ESP8266之NodeMcu调试记录