參考:
http://www.reibang.com/p/54e0238d3fae
三種服務(wù)質(zhì)量(QOS)
0(至多一次):消息發(fā)布完全依賴TCP/IP網(wǎng)絡(luò),會(huì)發(fā)生消息丟失或重復(fù)术羔,可以用于傳感器數(shù)據(jù)或者APP推送
1(至少一次):確保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生
2(只有一次):確保消息到達(dá)一次鹅心。在一些要求比較嚴(yán)格的計(jì)費(fèi)系統(tǒng)中,可以使用此級(jí)別纺荧。在計(jì)費(fèi)系統(tǒng)中旭愧,消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。這種最高質(zhì)量的消息發(fā)布服務(wù)還可以用于即時(shí)通訊類的APP的推送宙暇,確保用戶收到且只會(huì)收到一次输枯。
Last Will(遺言)和Testament(遺囑)機(jī)制通知各個(gè)客戶端一場(chǎng)終端的機(jī)制
三種身份
MQTT有三種身份:發(fā)布者(Publish),代理(Broker 即服務(wù)器)占贫,訂閱者(Subscribe)桃熄,消息的發(fā)布和訂閱都是客戶端,一個(gè)客戶端既可以是發(fā)布者也可以是訂閱者
消息分類
MQTT的消息分類為:主題(Topic)型奥,負(fù)載(Payload)
訂閱者訂閱發(fā)布者發(fā)布的主題(Topic)后瞳收,發(fā)布者發(fā)布消息后,就會(huì)收到該主題的消息內(nèi)容(Payload)
一些東西
訂閱(Subscription)桩引,會(huì)話(Session)缎讼,主題名(Topic Name),主題篩選器(Topic Filter)坑匠,負(fù)載(Payload)
MQTT協(xié)議中的方法(動(dòng)作)
MQTT協(xié)議中定義了一些方法(也被稱為動(dòng)作),來于表示對(duì)確定資源所進(jìn)行操作卧惜。這個(gè)資源可以代表預(yù)先存在的數(shù)據(jù)或動(dòng)態(tài)生成數(shù)據(jù)厘灼,這取決于服務(wù)器的實(shí)現(xiàn)。通常來說咽瓷,資源指服務(wù)器上的文件或輸出设凹。主要方法有:
- Connect。等待與服務(wù)器建立連接茅姜。
- Disconnect闪朱。等待MQTT客戶端完成所做的工作月匣,并與服務(wù)器斷開TCP/IP會(huì)話。
- Subscribe奋姿。等待完成訂閱锄开。
- UnSubscribe。等待服務(wù)器取消客戶端的一個(gè)或多個(gè)topics訂閱称诗。
- Publish萍悴。MQTT客戶端發(fā)送消息請(qǐng)求,發(fā)送完成后返回應(yīng)用程序線程寓免。
MQTT數(shù)據(jù)包結(jié)構(gòu)
由三個(gè)部分構(gòu)成:固定頭(Fixed Header)癣诱,可變頭(Variable Header),消息體(Payload)