獲取離線MQTT消息
更新時(shí)間:
為了簡(jiǎn)化離線消息獲取機(jī)制,云消息隊(duì)列 MQTT 版系統(tǒng)在客戶端成功建立連接并通過權(quán)限校驗(yàn)后,會(huì)自動(dòng)加載離線消息并下發(fā)到客戶端。
注意事項(xiàng)
- 客戶端建立連接后,需要通過權(quán)限校驗(yàn)才能自動(dòng)加載離線消息。例如,若您使用的是Token驗(yàn)證的方式,則需要完成Token上傳并通過校驗(yàn)后才會(huì)收到離線消息。
- 離線消息生成需要一定的時(shí)間,因?yàn)橥扑偷南⑿枰却蛻舳说腶ck超時(shí)才會(huì)被判成離線消息。所以,如果客戶端閃斷重連,不一定馬上可以獲取到剛剛的離線消息。延遲時(shí)間一般在5秒~10秒左右。
- 如果您的離線消息過多,即大于30條,云消息隊(duì)列 MQTT 版系統(tǒng)會(huì)分批(5秒一次,每次30條)下發(fā)離線消息。
說明 對(duì)于部分老用戶來說,有了自動(dòng)加載機(jī)制,可不再使用原來的主動(dòng)拉取的方式獲取離線消息,但繼續(xù)保留也無影響。
設(shè)置方法
您可以在消費(fèi)端通過設(shè)置QoS和cleanSession兩個(gè)參數(shù)來決定客戶端是否需要獲取離線消息。
QoS和cleanSession參數(shù)的詳細(xì)說明,請(qǐng)參見名詞解釋。表 1. QoS和cleanSession的組合關(guān)系
QoS級(jí)別 | cleanSession=true | cleanSession=false |
QoS0 | 無離線消息,在線消息只嘗試推一次。 | 有離線消息,在線消息只嘗試推一次。 |
QoS1 | 無離線消息,在線消息保證可達(dá)。 | 有離線消息,所有消息保證可達(dá)。 |
QoS2 | 無離線消息,在線消息保證可達(dá)且只接收一次。 | 暫不支持。 |
文檔內(nèi)容是否對(duì)您有幫助?