1. 程式人生 > >Mosquitto簡介及搭建

Mosquitto簡介及搭建

文章鋼要:

1、瞭解Mosquitto伺服器

2、在Liunx中搭建Mosquitto伺服器

3、設定Mosquitto叢集 

一、Mosquitto簡介

一款實現了訊息推送協議 MQTT v3.1 的開源訊息代理軟體,提供輕量級的,支援可釋出/可訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊變得簡單,比如現在應用廣泛的低功耗感測器,手機、嵌入式計算機、微型控制器等移動裝置。一個典型的應用案例就是 Andy Stanford-ClarkMosquitto(MQTT協議創始人之一)在家中實現的遠端監控和自動化。並在 OggCamp 的演講上,對MQTT協議進行詳細闡述。

二、Liunx下安裝Mosquitto

在windows下安裝比較簡單,在windows環境下需要先下載安裝Cygwin,安裝成功後在管網下載Mosquitto.exe之後點選安裝即可。圓子裡有很多教程講解,就不闡述了。並且在實際開發環境中使用windows環境在少數,大部分使用Liunx,因此下面介紹下在Liunx下安裝Mosquitto。

Liunx下安裝Mosquitto方法有2中,下載安裝包到本地安裝以及yum安裝。推薦用yum安裝因為比較方便,如果安裝失敗再考慮使用壓縮包安裝。

使用yum安裝:

1、預設情況下Mosquitto的安裝需要OpenSSL的支援,所以先安裝OpenSSL

yum install gcc gcc-c++

yum install openssl-devel

yum install c-ares-devel

yum install libuuid-devel

yum install wget

yum install cmake

yum install build-essential python quilt devscripts python-setuptools python3 

yum install libssl-dev libc-ares-dev uuid-dev daemon openssl-devel

在安裝過程中如果伺服器已經安裝過上述軟體程式,將不會在安裝,如果發現新版本或者未安裝會提示更新和安裝,使用者輸入‘Y’確認安裝即可。

2、下載並編譯安裝mosquitto

下載壓縮包(截止目前2016-11最新的壓縮包是1.4.10):

wget http://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz

解壓:

tar -xzvf mosquitto-1.4.9.tar.gz

進入目錄並安裝:

cd mosquitto-1.4.9 

make 

make install 3、配置mosquitto.conf檔案 

整個目錄中最重要的檔案就是mosquitto.conf,將其複製到ect下面

cp mosquitto.conf /etc/mosquitto

修改mosquitto.conf檔案

cd /etc/mosquitto/

使用vi命令開啟mosquitto.conf檔案

vi mosquitto.conf

按“↓”移動游標,找到Default Listeners下的

(可以使用“/Extra listeners”來查詢文字,按“N”鍵可以繼續超找。按“I”鍵進入編輯狀態,按ESC返回。退出是鍵入“:wq”儲存退出。不儲存強制退出“:q!”)

服務的埠號

#port 1883 改為 port 1883 

最大連線數,-1表示不限制

#max_connections -1 改為 max_connections -1 

因為我的登入使用者是root,所以這裡使用root

#use_username_as_clientid 改為 user root 

4、啟動Mosquitto伺服器

執行

mosquitto -c /etc/mosquitto/mosquitto.conf

在啟動的時候會出現報錯的情況,執行mosquitto客戶端程式時出現找不到動態庫:libmosquitto.so.1

錯誤資訊:./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解決方案,執行命令:

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

和 ldconfig 即可.

如果顯示如下提示說明啟動成功,警告不用管。

5、測試伺服器訂閱與釋出

訂閱服務:

mosquitto_sub -t HelloWord

mosquitto_sub 訂閱命令

-t 訂閱主題

Helloworld 主題名稱,可以隨便取名

釋出服務:

mosquitto_pub -t HelloWord -h localhost -m "Hello Word"

mosquitto_pub 釋出命令

-t 釋出主題

Helloworld 主題名稱

-h 主機地址

localhost 釋出到本地,如果遠端主機直接寫ip地址(不用寫埠號)

-m 釋出的資訊

“Hello world” 釋出的內容

如果一切順,應當如下圖所示,可以成功訂閱一條資訊,並且可以成功釋出資訊,訂閱端可以接受到資訊。