樹莓派搭建自己的MQTT服務器


MQTT協議是廣泛應用的物聯網協議,使用測試MQTT協議需要MQTT的代理。有兩種方法使用MQTT服務,
一是租用現成的MQTT服務器,如阿里雲,百度雲,華為雲等公用的雲平台提供的MQTT服務,
使用公用的MQTT服務器的好處是省事,但如果僅僅用於測試學習還需要注冊帳號,靈活性差些,
有的平台還需要付費。另一方法是自己使用開源的MQTT組件來搭建。
MQTT服務器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。
這里介紹的是用輕量級的mosquitto開源項目來搭建一個屬於自己的MQTT服務器。
 
下載mosquitto需要的依賴
sudo apt-get install libssl-dev
sudo apt-get install uuid-dev
sudo apt-get install cmake
 
下載mosquitto並解壓
wget http://mosquitto.org/files/source/mosquitto-1.6.9.tar.gz
tar -zxvf mosquitto-1.6.9.tar.gz
  
 
進入目錄
cd mosquitto-1.6.9
  
編譯
make
 
安裝
sudo make install
 
#啟動mosquitto
mosquitto -v
1535473957: mosquitto version 1.5.4 starting
1535473957: Using default config.
1535473957: Opening ipv4 listen socket on port 1883.
1535473957: Opening ipv6 listen socket on port 1883.

 

這時候mosquitto就會以默認的參數啟動。如果需要帶配置文件可以修改配置文件mosquitto.conf
可以看到,mosquitto監聽的端口為1883.
這時候我們的MQTT服務器就搭建好了。
可找一個mqtt客戶端來測試一下。
 
測試過程:
Android app 發布topic: 
鏈接:https://pan.baidu.com/s/1ABG8GZHPjnoWe-lfCh8kUg  密碼:vn6w
 
pc端 接收topic 消息:
import time
import paho.mqtt.client as mqtt
# The callback for when the client receives a CONNACK response from the server.

HOST = "192.168.199.111"
PORT = 1883

def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("連接成功")
        print("Connected with result code " + str(rc))

def on_message(client, userdata, msg):
    print(msg.topic + " " + str(msg.payload))
client = mqtt.Client(protocol=3)
client.username_pw_set("admin", "password")
client.on_connect = on_connect
client.on_message = on_message
client.connect(host=HOST, port = PORT, keepalive=60)  # 訂閱頻道
time.sleep(1)
client.subscribe("test")
#client.subscribe([("public", 0), ("test", 2)])
client.loop_forever()

 

 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

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



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