1. 程式人生 > 其它 >使用RabbitMQ搭建MQTT服務

使用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-pluginsenable rabbitmq_web_mqtt 開啟 rabbitmq_web_mqtt 對應埠 15675







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

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

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

賬號密碼就是Rabbit的登入賬號密碼,其餘引數預設就可以連線。連線成功後就可以傳送訊息了。 法送訊息時記得填寫交換機名我這裡交換機名為MQTT

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

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