MQTT大雜燴
MQTT是一套標準,常用的服務端有Eclipse的Mosquitto。MQTT是IBM出品,Eclipse也是IBM出品,所以Mosquitto算是官方實現吧。
Mosquitto在macOS下的安裝
執行命令brew install mosquitto
即可安裝
啟動:
-
理論上
brew services start mosquitto
可以啟動,但是我這邊啟動不了,也找不到報錯資訊和相關日誌。所以放棄 -
手動啟動:
/usr/local/opt/mosquitto/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf -v
以Verbose模式阻塞式啟動。也可以不使用-c
選項,用預設配置啟動Mosquitto
Mosquitto啟動日誌:
1543540708: mosquitto version 1.5.4 starting 1543540708: Config loaded from /usr/local/etc/mosquitto/mosquitto.conf. 1543540708: Opening ipv6 listen socket on port 1883. 1543540708: Opening ipv4 listen socket on port 1883.
可見Mosquitto預設監聽1883埠
MQTT演示
MQTT是一套訊息訂閱與釋出協議,這裡我啟動一個客戶端訂閱與監聽animal
主題,然後用另一個客戶端向animal
主題傳送訊息。控制檯輸出如下如下:
訊息釋出端
$ mosquitto_pub --topic animal --message "ant"
$ mosquitto_pub --topic animal --message "bee"
訊息釋出端沒有控制檯輸出,釋出訊息後直接退出
訊息訂閱端
$ mosquitto_sub --topic animal
ant bee
服務端
1543542192: New connection from ::1 on port 1883. 1543542192: New client connected from ::1 as mosqsub|73254-MacBook-A (c1, k60). 1543542192: No will message specified. 1543542192: Sending CONNACK to mosqsub|73254-MacBook-A (0, 0) 1543542192: Received SUBSCRIBE from mosqsub|73254-MacBook-A 1543542192:animal (QoS 0) 1543542192: mosqsub|73254-MacBook-A 0 animal 1543542192: Sending SUBACK to mosqsub|73254-MacBook-A 1543542215: New connection from ::1 on port 1883. 1543542215: New client connected from ::1 as mosqpub|73257-MacBook-A (c1, k60). 1543542215: No will message specified. 1543542215: Sending CONNACK to mosqpub|73257-MacBook-A (0, 0) 1543542215: Received PUBLISH from mosqpub|73257-MacBook-A (d0, q0, r0, m0, 'animal', ... (3 bytes)) 1543542215: Sending PUBLISH to mosqsub|73254-MacBook-A (d0, q0, r0, m0, 'animal', ... (3 bytes)) 1543542215: Received DISCONNECT from mosqpub|73257-MacBook-A 1543542215: Client mosqpub|73257-MacBook-A disconnected. 1543542233: New connection from ::1 on port 1883. 1543542233: New client connected from ::1 as mosqpub|73267-MacBook-A (c1, k60). 1543542233: No will message specified. 1543542233: Sending CONNACK to mosqpub|73267-MacBook-A (0, 0) 1543542233: Received PUBLISH from mosqpub|73267-MacBook-A (d0, q0, r0, m0, 'animal', ... (3 bytes)) 1543542233: Sending PUBLISH to mosqsub|73254-MacBook-A (d0, q0, r0, m0, 'animal', ... (3 bytes)) 1543542233: Received DISCONNECT from mosqpub|73267-MacBook-A 1543542233: Client mosqpub|73267-MacBook-A disconnected.
文章首發:ofollow,noindex" target="_blank">https://baijifeilong.github.io