目前測試mqtt的時候,有些訊息是必須到達,有些訊息發布出去就不管了,所有有qos=0,最多一次,qos=1,最少一次,qos=2,只有一次,當qos=0的時候,無論怎麼發都沒有關係,但是當qos=1,2的時候,就遇到問題了.
想讓裝置重新連線,獲取到mqtt儲存的訊息(qos=1,2),需要設定cleansession=false,就是裝置每次登陸,都是用同乙個session,而沒有發出去的訊息,是放在記憶體裡面的,跟session關聯,這裡問題就大了.訊息堆積,記憶體就掛了.所以有些 訊息,需要自己業務邏輯處理!!!!!
qos最好=0.
這裡是幾個mqtt的知識點,可以了解一下
MQTT學習之一
一mqtt特性 基於c s,發布訂閱 發布者伺服器 雲平台 訂閱客戶端 一對多結構,適用於低頻寬高延時,基於tcp ip之上。其它參考 基於正點原子stm32f4探索者開發板和阿里雲平台的mqtt通訊專案 mqtt的 伺服器 1 修改emqx windows 4.2.1 emqx etc plugi...
EMQ 學習 MQTT訊息QoS
mqtt發布訊息qos保證不是端到端的,是客戶端與伺服器之間的。訂閱者收到mqtt訊息的qos級別,最終取決於發布訊息的qos和主題訂閱的qos。客戶端連線 客戶端完成tcp三次握手之後,還需要發起connect命令 注意 如果客戶端三次握手之後,不發起mqtt的connect命令,30s之後會被伺...
EMQ 學習 MQTT訊息QoS
mqtt發布訊息qos保證不是端到端的,是客戶端與伺服器之間的。訂閱者收到mqtt訊息的qos級別,最終取決於發布訊息的qos和主題訂閱的qos。客戶端連線 客戶端完成tcp三次握手之後,還需要發起connect命令 注意 如果客戶端三次握手之後,不發起mqtt的connect命令,30s之後會被伺...