遺囑(last will)
遺囑是指客戶端socket異常斷開或者惫獍樱活失敗時茴丰,服務(wù)端會盡快發(fā)布該客戶端事先設(shè)定的應用消息柿隙。用來告知其他客戶端該客戶端的網(wǎng)絡(luò)已經(jīng)異常斷開陨倡。
對于訂閱者而言骑疆,遺囑和其他應用消息并沒有差異田篇,通常會指定不同的主題來區(qū)分這兩種消息。
客戶端的遺囑是在CONNECT報文里設(shè)定的箍铭,也可以不設(shè)定遺囑泊柬。遺囑與應用消息相同,可以設(shè)定主題(topic)诈火、消息內(nèi)容(payload)兽赁、QoS、保留(retain)等屬性冷守。
注:遺囑是會話狀態(tài)的一部分
遺囑的發(fā)布時機
當出現(xiàn)socket異常斷開或者钡堆拢活超時的時候,服務(wù)端應當立即發(fā)布遺囑消息拍摇,以確保盡快通知訂閱者亮钦。
注:MQTT v5.0 版本,支持設(shè)置遺囑延時充活。遺囑延時的功能是在網(wǎng)絡(luò)斷開后蜂莉,等待一段時間再發(fā)布遺囑蜡娶。如果期間網(wǎng)絡(luò)恢復,則不發(fā)布遺囑映穗。