10 常見MQTTBroker測試

(2021/10/17)

昨天上【iCShop】Teachable Machine AIoT 物聯網應用 線上課程,老師有介紹到幾款MQTT Broker,還有其使用的相關埠號,讓我觀念有比較清楚一點,今天做一些簡單的整理及測試,如下,供參

一、常見免費MQTT Broker

  1. MQTTGO.io (20220608新增)

    1. 尤老大公司出品

    2. mqttgo.io

    3. TCP Port:1883

    4. WebsocketPort:8000

      • 網址:mqttgo.io:8000/mqtt

    5. (2023/01/16更新)

      • tcp:mqttgo.io:1883

      • tcp/tls:mqttgo.io:8883

      • ws://mqttgo.io:8000/mqtt

      • wss://broker.mqttgo.io:8084/mqtt


    1. 上面資料測試結果(HIVEMQ、MQTTBox的使用於下方有介紹到)

      • HIVEMQ測試(只適用Websocket):8000連線成功

      • MQTTBox測試:1883成功、8000成功

      • 自家的MQTTGO.io網頁工具(只適用Websocket):8000成功

.

  1. HiveMQ

    1. broker.hivemq.com 、broker.mqttdashboard.com 這兩個一樣

    2. TCP Port:1883

    3. WebsocketPort:8000

      • 網址:broker.hivemq.com:8000/mqtt

    4. 好像未提供加密功能

    5. 上面資料測試結果(HIVEMQ、MQTTBox的使用於下方有介紹到)

      • HIVEMQ測試(只適用Websocket):8000成功

      • MQTTBox測試:1883成功、8000成功

  2. Mosquitto

    1. test.mosquitto.org

    2. TCP Port:1883 / 8883(TLS,加密)

    3. WebsocketPort:8080 / 8081(TLS)

      • 網址:test.mosquitto.org:8080/mqtt

    4. 上面資料測試結果

      • HIVEMQ測試(只適用Websocket):8080成功、8081成功 (覺比較不穩)

      • MQTTBox測試:1883 / 8883成功、8080/8081成功 (感覺比較不穩)

  3. EMQX

    1. broker.emqx.io

    2. TCP Port:1883 / 8883(TLS)

    3. WebsocketPort:8083 / 8084(TLS)

      • 網址:broker.emqx.io:8083/mqtt

    4. 上面資料測試結果

      • HIVEMQ測試(只適用Websocket):8083、8084成功(很快)

      • MQTTBox測試:18838883成功、8083、8084成功

  4. Eclipseprojects

    1. mqtt.eclipseprojects.io

    2. TCP Port:1883 / 8883(TLS)

    3. WebsocketPort:

      • ws://mqtt.eclipseprojects.io:80/mqtt (預設80port)

      • wss://mqtt.eclipseprojects.io:443/mqtt (預設443port)

    4. 上面資料測試結果

      • HIVEMQ測試(只適用Websocket):80、443成功(很快)

      • MQTTBox測試:1883 / 8883、80、443都成功

  5. paho8181

    1. paho8181.cloudapp.net

    2. TCP Port:1883 / 8883(TLS)

    3. 上面資料測試結果

      • HIVEMQ測試(只適用Websocket):無找到WebsocketPort資料

      • MQTTBox測試:1883/8883成功

  6. Webduino

    1. WebsocketPort:

      • ws://mqtt1.webduino.io/mqtt (預設80port)

      • wss://mqtt1.webduino.io/mqtt(預設443port)

    2. Username: webduino

    3. Passeord: webduino

    4. 上面資料測試結果

      • HIVEMQ測試(只適用Websocket):都連線沒成功不知原因為何?

      • MQTTBox測試:ws、wws都成功

  7. 自架的

    1. 這可參考之前所介紹最簡單的自架MQTT伺服器的方法https://sites.google.com/site/wenyunotify/09-%E5%85%B6%E4%BB%96/01-%E6%9E%B6%E8%A8%ADmqtt%E4%BC%BA%E6%9C%8D%E5%99%A8?authuser=0

    2. TCP Port:1883 (埠可自行設定)

    3. WebsocketPort:8080(埠可自行設定)

    4. 上面資料測試結果

      • HIVEMQ測試(只適用Websocket):沒成功,因為使用了虛擬IP

      • MQTTBox測試:1883成功、8080連線沒成功

二、簡單的MQTT client工具

    • MQTTGO.io網頁工具(目前僅適用MQTTGO.io) (20220608新增)

    • MQTTBox (另外還有一套是MQTTlens,但我比較喜歡用MQTTBox)

      • 幾種設定說明:

        1. mqtt/tcp

2.mqtts/tls(加密)

3.ws

4.wws

  • 只要是同一個網站,不管用什麼連線方式,訊息都可以相互連通

  • MQTT定義了0、1和2三個層級的QoS(QualityofService)服務品質

    • 實際支援情況依Broker主機而定

    • 0:最多傳送一次(at most once)

    • 1:至少傳送一次(at least once)

    • 0:確實傳送一次(exactly once)