訂閱主題和訂閱確認
SUBSCRIBE——訂閱主題
之前的CONNECT報文,分為
- 固定報頭:必須存在,用于描述報文信息。里面有指出什么類型的報文,報文的等級。
- 可變報頭:不一定存在。主要看什么樣子類型的報文。
- 有效載荷部分:這是內容,也是通信信息的存放的地方,只是有時候還會存放一些額外的信息,如客戶ID。
SUBSCRIBE報文
客戶端向服務端訂閱!
- 服務端發送PUBLISH報文給客戶端。
- SUBSCRIBE報文指定了最大的QoS等級(服務質量要求)。
固定報頭
可變報頭
有效載荷
主題過濾器
服務質量要求(Qos等級)
使用訂閱主題的時候一定要connect上服務器!
客戶端向服務器訂閱!
SUBACK——訂閱確認
取消訂閱UNSUBSCRIBE和取消訂閱確認
客戶端向服務端取消訂閱!
取消訂閱確認UNSUBACK
發布消息PUBLISH
PUBLISH控制報文是指從客戶端向服務端或者服務端向客戶端傳輸一個應用消息。
可變報頭
主題名Topic Name:用于識別有效載荷數據應該被發布到哪一個信息通道。
報文標識符Packet Identifer只有當QoS等級是1或2時,報文標識符(Packet Identifer)字段才能出現在PUBLISH報文中。
有效載荷
有效載荷包含將發布的應用消息。
數據的內容和格式是應用特定的。
特定的格式:JSON
響應
動作
客戶端使用PUBLISH報文發送應用消息給服務端,目的是分發到其它訂閱匹配的客戶端。
服務端使用PUBLISH報文發送應用消息給每一個訂閱匹配的客戶端。
JSON
JavaScript Object Notation,JS對象簡譜,是一種輕量級的數據交換格式,JSON指的是JavaScript對象表示法。
{"firstName":"John"
}
- {}:大括號表示對象——鍵
- “”:雙引號內表示屬性或者值——指
鍵:必須是字符串
值:字符串、數組[]、對象{}、數字等
{"method":"thing.event.property.post","id":"00000001","params":{"PwoerSwitch":0},"version":"1.0.0"
}
多個鍵之間用,表示
不要復制長度到網絡調試助手
消息轉換成十六進制