心跳機制
Keep Alive指定連接最大空閑時間T,當客戶端檢測到連接空閑時間超過T時,必須向Broker發送心跳報文PINGREQ,Broker收到心跳請求后返回心跳響應PINGRESP。若Broker超過1.5T時間沒收到心跳請求則斷開連接,並且投遞遺囑消息到訂閱方;同樣,若客戶端超過一定時間仍沒收到心跳響應PINGRESP則斷開連接。
連接空閑時發送心跳報文可以降低網絡請求,弱化對帶寬的依賴。
Keep Alive設定時機
創建連接時,在CONNECT報文中指定,單位s。
Client Take-Over
場景:客戶端與Broker連接正常,然后客戶端快速重啟(小於1.5T),再重新連接Broker,在未達到1.5T這段時間內,客戶端與Broker存在兩條連接。
處理措施: 先斷開之前的連接再建立新的連接。
