搭建自己的MQTT服務器


搭建自己的MQTT服務器

物聯網電子世界

百家號08-2903:04

MQTT協議是廣泛應用的物聯網協議,使用測試MQTT協議需要MQTT的代理。有兩種方法使用MQTT服務,一是租用現成的MQTT服務器,如阿里雲,百度雲,華為雲等公用的雲平台提供的MQTT服務,使用公用的MQTT服務器的好處是省事,但如果僅僅用於測試學習還需要注冊帳號,靈活性差些,有的平台還需要付費。另一方法是自己使用開源的MQTT組件來搭建。

MQTT服務器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。

這里介紹的是用輕量級的mosquitto開源項目來搭建一個屬於自己的MQTT服務器。

第一步:需要安裝一台linux主機,這不多介紹,可以使用真機安裝也可以使用虛擬機安裝。如果僅僅是自己測試使用都可以。

第二步:下載mosquitto需要的依賴

sudo apt-get install libssl-devsudo apt-get install uuid-devsudo apt-get install cmake

 

第三步:下載mosquitto並解壓,現在mosquitto官網最新的版本是1.5.1

tar xzvf mosquitto-1.5.1.tar.gz

第四步:編譯

cd mosquitto-1.5.1/

make

make install

第五步:啟動mosquitto

./mosquitto -v

1535473957: mosquitto version 1.5.1 starting

1535473957: Using default config.

1535473957: Opening ipv4 listen socket on port 1883.

1535473957: Opening ipv6 listen socket on port 1883.

這時候mosquitto就會以默認的參數啟動。如果需要帶配置文件可以修改配置文件mosquitto.conf,

啟動時候加上參數 -c,

./mosquitto -c mosquitto.conf

可以看到,mosquitto監聽的端口為1883.

這時候我們的MQTT服務器就搭建好了。可找一個mqtt客戶端來測試一下。

先發布一個主題“home/garden/fountain/2”

內容是“hello world”

這時候在mosquitto會打印出下面的log

535474247: New connection from 192.168.1.105 on port 1883.

1535474247: New client connected from 192.168.1.105 as MQTT_FX_Client (c1, k60).

1535474247: No will message specified.

1535474247: Sending CONNACK to MQTT_FX_Client (0, 0)

1535474307: Received PINGREQ from MQTT_FX_Client

1535474307: Sending PINGRESP to MQTT_FX_Client

1535474339: Received PUBLISH from MQTT_FX_Client (d0, q0, r0, m0, 'home/garden/fountain/2', ... (12 bytes))

1535474367: Received PINGREQ from MQTT_FX_Client

1535474367: Sending PINGRESP to MQTT_FX_Client

 

訂閱主題“home/garden/fountain/2”

 

可以看到收到了自己發布的消息。

用wireshark抓包

可以看到抓到了一個MQTT的publish的報文。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM