使用RabbitMQ搭建MQTT服務


由於近期公司需要搭建一套物聯網采集環境,底層設備采用MQTT協議傳輸數據。服務器環境為linux,考慮到現有環境已經有RabbitMQ環境,Rabbit是基於AMQP協議開發的一套高效的消息傳輸隊列。心想Rabbit是否也支持MQTT呢,百度一番果然有收獲,Rabbit集成了MQTT環境只需要幾句命令就可以完成擴展。

RabbitMQ 默認關閉MQTT 協議,需用命令手動擴展,RabbitMQ 的MQTT 協議分為兩種。

  •  rabbitmq_mqtt 提供與后端服務交互使用,端口1883

  •  rabbitmq_web_mqtt 提供與前端交互使用,端口15675

使用rabbit自帶的控制台輸入命令,這樣方便點。也可以用windows cd到rabbit目錄敲命令。

 

 

 輸入以下命令
   rabbitmq-plugins enable rabbitmq_mqtt                                                       開啟   rabbitmq_mqtt 對應端口 1883

  rabbitmq-plugins enable rabbitmq_web_mqtt                                               開啟   rabbitmq_web_mqtt 對應端口 15675

 
        

 

 
        

 

 

開啟成功后這時,MQTT服務就搭建好了。現在可以測試,MQTT通訊了。使用rabbit 作為MQTT服務的話,需要創建 topic類型的交換機。交換機名作為訂閱和發布消息的Topic

 

 

 創建一個名為MQTT的交換機,類型為Topic很重要。

這時服務端就創建好了,現在我們再開啟兩個客戶端進行消息傳輸。我這里用的時MQTTX工具測試。

 

 

 

 

 

 賬號密碼就是Rabbit的登錄賬號密碼,其余參數默認就可以連接。連接成功后就可以發送消息了。 法送消息時記得填寫交換機名我這里交換機名為MQTT

 

 這是打開我的MQTT訂閱客戶端,就可以接收到消息了。

 

 

這樣就完成了整個通訊流程,我基於.net5 開發了一套MQTT客戶端,后續給大家分享下。

 


免責聲明!

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



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