mqtt學習筆記——mqtt協議體驗 mosquitto安裝和使用
android推送方案分析
mosquitto伺服器搭建
0 前言
mqtt是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。mosquitto是一款實現了 mqtt v3.1 協議的開源訊息**軟體,提供輕量級的,支援發布/訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊簡單易用。
若初次接觸mqtt協議,可先理解以下概念:
【mqtt協議特點】——相比於restful架構的物聯網系統,mqtt協議借助訊息推送功能,可以更好地實現遠端控制。
【mqtt協議角色】——在restful架構的物聯網系統,包含兩個角色客戶端和伺服器端,而在mqtt協議中包括發布者,**器(伺服器)和訂閱者。
【mqtt協議訊息】——mqtt中的訊息可理解為發布者和訂閱者交換的內容(負載),這些訊息包含具體的內容,可以被訂閱者使用。
【mqtt協議主題】——mqtt中的主題可理解為相同型別或相似型別的訊息集合。
1 安裝和使用注意點
1.1 安裝
截止2023年12月,最新版本為mosquitto-1.4.5
wget
# 解壓
tar zxfv mosquitto-1.4.5.tar.gz
# 進入目錄
cd mosquitto-1.4.5
# 編譯
make
# 安裝
sudo make install
1.2 安裝注意點
編譯找不到openssl/ssl.h
【解決方法】——安裝openssl
sudo apt-get install libssl-dev
編譯過程找不到ares.h
sudo apt-get install libc-ares-dev
編譯過程找不到uuid/uuid.h
sudo apt-get install uuid-dev
使用過程中找不到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
make: g++:命令未找到
【解決方法】
安裝g++編譯器
sudo apt-get install g++
2 簡單測試
乙個完整的mqtt示例包括乙個**器,乙個發布者和乙個訂閱者。測試分為以下幾個步驟:
啟動服務mosquitto。
若出現如下錯誤:
error: invalid user 'mosquitto'.
直接在shell視窗中執行:useradd mosquitto 命令就可以了。
訂閱者通過mosquitto_sub訂閱指定主題的訊息。
發布者通過mosquitto_pub發布指定主題的訊息。
**伺服器把該主題的訊息推送到訂閱者。
【測試說明】
測試環境:ubuntu 15.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協議的相關過程有所了解。
linux 安裝mqtt 測試成功
1 安裝軟體 yum install gcc c yum install cmake yum install openssl devel 2 去usr loca 目錄下操作 mkdir software cd software wget tar xzvf mosquitto 1.4.10.tar.g...
mqtt安裝小記
1.安裝外部依賴 1.1 yum 安裝依賴 yum install openssl devel yum install c ares devel yum install libuuid devel yum install gcc 1.2 編譯安裝hiredis客戶端 tar zxvf hiredis...
mqtt之jmeter壓力測試
引自 今天我們介紹xmeter團隊帶來的新版mqtt jmeter外掛程式,您可以更為方便地新增mqtt連線 發布 訂閱取樣器,構造組合的應用場景,例如背景連線 多發少收 少發多收,計算訊息 時延等。利用該外掛程式,我們為emq成功實施了包括百萬級併發連線在內的一系列測試場景,這裡有詳細的測試報告。...