MQTT 實作
MQTT(message queuing telemetry transport) protocol
- 針對網路品質不佳、資源吃緊的嵌入、行動設備
- Pub/Sub,一對多
- TCP/IP
- header 長度固定,只有 2bytes
- 有 Last Will 機制,告知異常斷開
- 可能節省用電量
QoS Level
- 0 - 最多發一次,可能會遺失或重複訊息,適合連續發送的Sensor,沒很要求可靠性(預設)
- 1 - 最少發一次,保證訊息會送到,但可能重複
- 2 - 只發一次,對訊息品質最要求,不可多或少,如計費裝置
Mosquitto
- 最輕量
- 可與其他 MQTT 服務整合
- Client 建議使用 Paho
RabbitMQ
- 還是依循 AMQP 協定,速度較慢?
- MQTT Adapter 不支援 QoS2
- MQTT-over-WebSockets 支援 html5 websocket 套件
- Client 建議使用 Paho
Paho 專案 (link)
Client Solution,可連接支援 MQTT 協定的其他 MQ 服務- Javascript - mqttws31.js
- 另外支援 Java、Python、Go、C、.Net、Android、Embedded C/C++
- 沒有 PHP,可改用 Mosquitto-PHP (tutorial)
Hello World (Mosquitto)
- Mac brew + cmd
$ brew install mosquitto
$ ln -sfv /usr/local/opt/mosquitto/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mosquitto.plist
#第一個視窗,訂閱 topic
$ mosquitto_sub -t topic/vvvvv
#開第二個 terminal 視窗,並發布
$ mosquitto_pub -t topic/vvvvv -m "Hello World"
$ docker run -itd -p 1883:1883 -p 9001:9001 eclipse-mosquitto
#需要 websocket 可使用下面這套,ws port 為 9001
$ docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto sourceperl/mosquitto
#下載 mott-spy GUI
https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads
GUI (mac)
- mott-spy
- MQTT.fx http://www.hivemq.com/blog/mqtt-toolbox-mqtt-fx
retained 將訊息持久化
參考文獻
http://cheng-min-i-taiwan.blogspot.tw/2015/03/raspberry-pimqtt-android.html
MQTT 實作
Reviewed by Wild
on
2/27/2017 06:24:00 下午
Rating:
沒有留言:
沒有Google帳號也可發表意見唷!