一 編譯源碼和安裝
(1)下載源代碼包
http://mosquitto.org/files/source/
【1】解壓
tar -xfv mosquitto-1.5.tar.gz
【2】進入目錄
cd mosquitto-1.5
【3】編譯
make
【4】安裝
sudo make install
(2) 安裝注意點
【1】編譯找不到openssl/ssl.h
【解決方法】——安裝openssl
sudo apt-get install libssl-dev
【2】編譯過程找不到ares.h
【解決方法】——修改config.mk中的WITH_SRV:=yes,改爲WITH_SRV:=no
【2】編譯過程找不到uuid/uuid.h
【解決方法】——apt-get install uuid-dev
【3】使用過程中找不到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
【4】make: g++:命令未找到
【解決方法】
安裝g++編譯器
sudo apt-get install g++
二 簡單測試
一個完整的MQTT示例包括一個代理器,一個發佈者和一個訂閱者。測試分爲以下幾個步驟:
【1】啓動服務mosquitto。
【2】訂閱者通過mosquitto_sub訂閱指定主題的消息。
【3】發佈者通過mosquitto_pub發佈指定主題的消息。
【4】代理服務器把該主題的消息推送到訂閱者。
【測試說明】
測試環境:ubuntu 12.04 虛擬機
在本例中,發佈者、代理和訂閱者均爲localhsot,但是在實際的情況下三種並不是同一個設備,在mosquitto中可通過-h(--host)設置主機名稱(hostname)。爲了實現這個簡單的測試案例,需要在linux中打開三個控制檯,分別代表代理服務器、發佈者和訂閱者。
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協議的相關過程有所瞭解。
轉載:https://blog.csdn.net/zhang89xiao/article/details/51734536
https://blog.csdn.net/u012990532/article/details/50586002
https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/02-ControlPacketFormat.html