ONENET設(shè)備終端接入?yún)f(xié)議4-MQTT參考_第1頁
ONENET設(shè)備終端接入?yún)f(xié)議4-MQTT參考_第2頁
ONENET設(shè)備終端接入?yún)f(xié)議4-MQTT參考_第3頁
ONENET設(shè)備終端接入?yún)f(xié)議4-MQTT參考_第4頁
ONENET設(shè)備終端接入?yún)f(xié)議4-MQTT參考_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、ONENET設(shè)備終端接入?yún)f(xié)議4-MQTTONENET設(shè)備終端接入?yún)f(xié)議4-MQTTONENET設(shè)備終端接入?yún)f(xié)議4-MQTTMessage Queuing Telemetry Transport(MQTT)版本號修訂日期修訂內(nèi)容說明V1.12015/9/8草稿V2.02016/4/8重構(gòu)LiuyuanV2.12016/4/19豐富報文格式,業(yè)務(wù)流程LeihongV2.22016/7/13增加設(shè)備間訂閱,創(chuàng)建topic功能Leihong目錄 TOC o 1-3 h z u HYPERLINK l _Toc456192642 1說明 PAGEREF _Toc456192642 h 3 HYPERLIN

2、K l _Toc456192643 2接入流程 PAGEREF _Toc456192643 h 3 HYPERLINK l _Toc456192644 3Packet格式說明 PAGEREF _Toc456192644 h 4 HYPERLINK l _Toc456192645 3.1 Fixed header PAGEREF _Toc456192645 h 4 HYPERLINK l _Toc456192646 3.2 Variable Header &Payload PAGEREF _Toc456192646 h 4 HYPERLINK l _Toc456192647 4支持的packet

3、 PAGEREF _Toc456192647 h 5 HYPERLINK l _Toc456192648 4.1CONNECT PAGEREF _Toc456192648 h 5 HYPERLINK l _Toc456192649 4.1.1 Fixed Header PAGEREF _Toc456192649 h 5 HYPERLINK l _Toc456192650 4.1.2 VariableHeader PAGEREF _Toc456192650 h 5 HYPERLINK l _Toc456192651 4.1.3 Payload PAGEREF _Toc456192651 h 6

4、HYPERLINK l _Toc456192652 4.2CONNACK PAGEREF _Toc456192652 h 6 HYPERLINK l _Toc456192653 4.2.1 Fixed Header PAGEREF _Toc456192653 h 6 HYPERLINK l _Toc456192654 4.2.2 VariableHeader PAGEREF _Toc456192654 h 6 HYPERLINK l _Toc456192655 4.3PUBLISH(client - server) PAGEREF _Toc456192655 h 7 HYPERLINK l _

5、Toc456192656 4.3.1 Fixed header PAGEREF _Toc456192656 h 7 HYPERLINK l _Toc456192657 4.3.2 VariableHeader PAGEREF _Toc456192657 h 7 HYPERLINK l _Toc456192658 4.3.3 Payload PAGEREF _Toc456192658 h 8 HYPERLINK l _Toc456192659 4.4PUBLISH(server - client) PAGEREF _Toc456192659 h 8 HYPERLINK l _Toc4561926

6、60 4.4.1 Fixed header PAGEREF _Toc456192660 h 8 HYPERLINK l _Toc456192661 4.4.2 VariableHeader PAGEREF _Toc456192661 h 8 HYPERLINK l _Toc456192662 4.4.3 Payload PAGEREF _Toc456192662 h 8 HYPERLINK l _Toc456192663 4.5PUBACK PAGEREF _Toc456192663 h 9 HYPERLINK l _Toc456192664 4.4.1 Fixed header PAGERE

7、F _Toc456192664 h 9 HYPERLINK l _Toc456192665 4.4.2 VariableHeader PAGEREF _Toc456192665 h 9 HYPERLINK l _Toc456192666 4.6SUBSCRIBE PAGEREF _Toc456192666 h 9 HYPERLINK l _Toc456192667 4.5.1 Fixed header PAGEREF _Toc456192667 h 9 HYPERLINK l _Toc456192668 4.5.2 VariableHeader PAGEREF _Toc456192668 h

8、9 HYPERLINK l _Toc456192669 4.5.3 Payload PAGEREF _Toc456192669 h 9 HYPERLINK l _Toc456192670 4.7SUBACK PAGEREF _Toc456192670 h 10 HYPERLINK l _Toc456192671 4.6.1 Fixed header PAGEREF _Toc456192671 h 10 HYPERLINK l _Toc456192672 4.6.2 VariableHeader PAGEREF _Toc456192672 h 10 HYPERLINK l _Toc4561926

9、73 4.6.3 Payload PAGEREF _Toc456192673 h 10 HYPERLINK l _Toc456192674 4.8UNSUBSCRIBE PAGEREF _Toc456192674 h 10 HYPERLINK l _Toc456192675 4.7.1 Fixed header PAGEREF _Toc456192675 h 10 HYPERLINK l _Toc456192676 4.7.2 VariableHeader PAGEREF _Toc456192676 h 11 HYPERLINK l _Toc456192677 4.7.3 Payload PA

10、GEREF _Toc456192677 h 11 HYPERLINK l _Toc456192678 4.9 UNSUBACK PAGEREF _Toc456192678 h 11 HYPERLINK l _Toc456192679 4.9.1 Fixed header PAGEREF _Toc456192679 h 11 HYPERLINK l _Toc456192680 4.9.2 VariableHeader PAGEREF _Toc456192680 h 11 HYPERLINK l _Toc456192681 5接入流程 PAGEREF _Toc456192681 h 12 HYPE

11、RLINK l _Toc456192682 5.1連接鑒權(quán) PAGEREF _Toc456192682 h 12 HYPERLINK l _Toc456192683 5.2消息發(fā)布 PAGEREF _Toc456192683 h 13 HYPERLINK l _Toc456192684 5.2.1 數(shù)據(jù)點上報 PAGEREF _Toc456192684 h 13 HYPERLINK l _Toc456192685 5.2.2 平臺命令(下發(fā)&回復(fù)) PAGEREF _Toc456192685 h 17 HYPERLINK l _Toc456192686 5.2 創(chuàng)建Topic PAGEREF

12、_Toc456192686 h 19 HYPERLINK l _Toc456192687 5.3 訂閱 PAGEREF _Toc456192687 h 21 HYPERLINK l _Toc456192688 5.4 取消訂閱 PAGEREF _Toc456192688 h 21 HYPERLINK l _Toc456192689 5.5 推送設(shè)備Topic PAGEREF _Toc456192689 h 22說明MQTT協(xié)議詳細(xì)內(nèi)容請參見MQTT version 3.1.1官方文檔,本文檔對此不做詳細(xì)說明,僅指明OneNet的要求、默認(rèn)參數(shù)、以及當(dāng)前實現(xiàn)與MQTT官方文檔的差異。該版本支持的

13、功能:鑒權(quán);數(shù)據(jù)點上報(平臺指定topic); 創(chuàng)建topic;獲取項目的topic列表;訂閱/取消平臺的topic; 設(shè)備間topic訂閱;平臺命令下發(fā);Qos0(cS) ,Qos1(C-S);接入流程訪問平臺 HYPERLINK / /注冊用戶;用戶根據(jù)業(yè)務(wù)情況,在“連接請求”章節(jié)中選擇EDP登錄方式(目前公測階段,頁面還未提供MQTT登錄選項,登錄方式與EDP兼容);登錄需填寫設(shè)備相關(guān)屬性,在項目下新增設(shè)備,獲取項目ID、設(shè)備ID,以及authinfo等信息;設(shè)備發(fā)送TCP連接請求到以下地址,發(fā)送封裝的報文與平臺交互。平臺服務(wù)器地址9,TCP 端口6002Packet格式說明包格式包含三

14、部分: Fixed Header所有packet中都必須有Varable Header部分包含有Payload部分包含有3.1 Fixed headerBit76543210byte 1MQTT Packet Type0000byte2 - 5Remaining Length(該字段占用1-4個字節(jié))該版本支持的所有類型:名字值流向描述CONNECT1C-S客戶端請求與服務(wù)端建立連接CONNACK2S-C服務(wù)端確認(rèn)連接建立PUBLISH3CS發(fā)布消息PUBACK4CS收到發(fā)布消息確認(rèn)SUBSCRIBE8C-S訂閱請求 SUBACK9S-C訂閱確認(rèn)UNSUBSCRIBE10C-S取消訂閱UNSU

15、BACK11S-C取消訂閱確認(rèn)3.2 Variable Header &Payload消息類型Variable HeaderPayloadCONNECT有有CONNACK有有PUBLISH有有PUBACK有無SUBSCRIBE有有SUBACK有有UNSUBSCRIBE有有UNSUBACK有無支持的packet CONNECT4.1.1 Fixed HeaderBit76543210byte 1MQTT Packet Type0000byte2 - 5Remaining Length(該字段占用1-4個字節(jié))4.1.2 VariableHeaderDescription76543210byte

16、1-2ProtocolName Length0000000000000100byte 3M01001101byte 4Q01010001byte 5T01010100byte 6T01010100Byte7Protocol Level00000001Byte8Connect FlagUserflagPasswordflagWillRetainFlagWillQos FlagWillFlagCleanSessionFlagReserveByte9-10KeepAlive版本必須設(shè)置為4,平臺只支持版本v 3.1.1,不支持更老的版本。使用第三方客戶端時需要注意選擇正確的版本。user flag與

17、password flag平臺不允許匿名登陸,因此這兩個標(biāo)志位在連接時必須設(shè)置為1,否則認(rèn)為協(xié)議錯誤,平臺將會斷開連接。will flag與Willretainflag/Willqosflag 平臺暫不支持will flag,WillRetain Flag與 WillQos Flag必須設(shè)置為0。CleanSessionFlag若客戶端將clean session標(biāo)志位設(shè)置為0,當(dāng)其斷開后,平臺將會保存session,session需保持的內(nèi)容包含:客戶端訂閱的topic列表.客戶端保存session的內(nèi)容包含:已經(jīng)發(fā)送到服務(wù)端的但還沒有收到確認(rèn)的Qos1消息列表.待發(fā)送的Qos0列表.Res

18、erve 保留位,置0。KeepAlive保活時間每個客戶端可自定義設(shè)置連接保持時間,最短120秒,最長65535秒。 4.1.3 PayloadDescription是否必須存在格式Field1Client Identifier是2字節(jié)字串長度 + utf8字串Field2UserName是2字節(jié)字串長度 + utf8字串Field3UserPassword是2字節(jié)字串長度 + utf8字串與鑒權(quán)相關(guān)的字段包含client id,username和password,支持鑒權(quán)方式。字段設(shè)置消息示例client_id設(shè)置為平臺創(chuàng)建設(shè)備時的設(shè)備idusername設(shè)置為“項目ID”password

19、設(shè)置為“鑒權(quán)信息(auth_info)”client_id=”123”username=”433223”password=”注冊的鑒權(quán)信息”各字段說明如下: 項目ID:在平臺添加項目時平臺生成的ID; 鑒權(quán)信息(auth_info):在平臺申請設(shè)備時填寫設(shè)備的auth_info屬性(數(shù)字+字母的字符串),該屬性需要產(chǎn)品內(nèi)具備唯一性; CONNACK4.2.1 Fixed HeaderBit76543210byte 1MQTT Packet Type0000byte2 - 5Remaining Length(該字段占用1-4個字節(jié))4.2.2 VariableHeaderDescription7

20、6543210byte 1Acknowledge Flags0000000Spbyte 2Return CodexxxxxxxxSp: Session Present Flag,session信息在服務(wù)器已保持,置1;未保存,置0。返回碼說明:返回碼描述0成功1協(xié)議版本錯誤2非法的clientid3服務(wù)不可用4用戶名或密碼錯誤5非法鏈接(比如token非法)失?。?如果connect包不符合協(xié)議內(nèi)容約束,則直接斷掉連接,而不需要發(fā)送connack包. *如果鑒權(quán)或授權(quán)失敗,回復(fù)一個帶非0錯誤碼的connack包.成功:*必須斷掉重復(fù)的clientid.*執(zhí)行cleansession 對應(yīng)的操作

21、.*必須回復(fù)一個connack,回復(fù)碼為0.*開始消息傳遞,并加入keepalive的監(jiān)視.PS:客戶端需要等到服務(wù)端的connack報文,才能發(fā)送后續(xù)的數(shù)據(jù)包.PUBLISH(client - server)4.3.1 Fixed headerBit76543210byte 1MQTT Packet TypeDUP flagQoS LevelRETAINbyte2 - 5Remaining Length(該字段占用1-4個字節(jié)) DUP: QoS1:如果為0,則表示是第一次發(fā)送該包,如果為1,則表示為重復(fù)發(fā)送的包。 Qos0:DUP必須為0 QOS: 指定了該publish包的qos等級如下

22、 RETAIN: 暫不實現(xiàn) Qos 值Bit2Bit1描述000最多發(fā)送一次101至少發(fā)送一次 PS:該版本只實現(xiàn)Qos0,Qos14.3.2 VariableHeaderDescription格式是否必須Field1TopicName2字節(jié)字串長度 + utf8字串是Field2PacketIdentifier2字節(jié)QoS0:否, QoS1:是4.3.3 Payload 內(nèi)容根據(jù)不同業(yè)務(wù)自定義.PUBLISH(server - client)4.4.1 Fixed headerBit76543210byte 1MQTT Packet TypeDUP flagQoS LevelRETAINby

23、te2 - 5Remaining Length(該字段占用1-4個字節(jié)) DUP: QoS1:如果為0,則表示是第一次發(fā)送該包,如果為1,則表示為重復(fù)發(fā)送的包。 Qos0:DUP必須為0 QOS: 指定了該publish包的qos等級如下 RETAIN: Qos 值Bit2Bit1描述000最多發(fā)送一次 PS:該版本只實現(xiàn)Qos04.4.2 VariableHeaderDescription格式Field1TopicName2字節(jié)字串長度 + utf8字串4.4.3 Payload內(nèi)容根據(jù)不同業(yè)務(wù)自定義. PUBACK4.4.1 Fixed headerBit76543210byte 1MQT

24、T Packet Type0000byte2 5Remaining Length(該字段占用1-4個字節(jié))4.4.2 VariableHeaderDescription76543210byte 12PacketIdentifierPacketIdentifier SUBSCRIBE4.5.1 Fixed headerBit76543210byte 1MQTT Packet Type0000byte2 5Remaining Length(該字段占用1-4個字節(jié))4.5.2 VariableHeaderDescription76543210byte 12PacketIdentifierPacket

25、Identifier4.5.3 PayloadDescription格式Byte1nTopicName2字節(jié)字串長度 + utf8字串Byten+1Reserved保留字節(jié)(兼容mqtt-v3.1.1)topic說明 可以包含一個或多個topic.topic必須是數(shù)字、英文、反斜杠(/)的組合,目前不支持通配符。每個客戶端最多訂閱100個topic;以下topic被系統(tǒng)保留使用,(客戶端不能訂閱):類型說明$開頭平臺保留SUBACK4.6.1 Fixed headerBit76543210byte 1MQTT Packet Type0000byte2 5Remaining Length(該字段

26、占用1-4個字節(jié))4.6.2 VariableHeaderDescription76543210byte 12PacketIdentifierPacketIdentifier4.6.3 PayloadDescription76543210byte 1retcode返回碼說明:返回碼描述0 x00成功0 x80失敗UNSUBSCRIBE4.7.1 Fixed headerBit76543210byte 1MQTT Packet Type0000byte2 5Remaining Length(該字段占用1-4個字節(jié))4.7.2 VariableHeaderDescription76543210by

27、te 12PacketIdentifierPacketIdentifier4.7.3 PayloadDescription格式Byte1nTopicName2字節(jié)字串長度 + utf8字串 可以包含一個或多個topic.4.9 UNSUBACK4.9.1 Fixed headerBit76543210byte 1MQTT Packet Type0000byte2 5Remaining Length(該字段占用1-4個字節(jié))4.9.2 VariableHeaderDescription76543210byte 12PacketIdentifierPacketIdentifier接入流程連接鑒權(quán)設(shè)

28、備向平臺發(fā)起connect請求.connect中攜帶鑒權(quán)信息,具體參見(報文格式參考4.1)平臺拿到鑒權(quán)信息進(jìn)行鑒權(quán). 鑒權(quán)通過后,如果cleansession=0, 平臺將會加載保存的設(shè)備的一些信息.如訂閱列表(4.1.2中描述).如果cleansession=1, 設(shè)備沒有保存信息在平臺,則不加載設(shè)備相關(guān)信息.返回鑒權(quán)結(jié)果ConnAck(報文格式參考4.2).消息發(fā)布5.2.1 數(shù)據(jù)點上報設(shè)備使用publish報文來上傳數(shù)據(jù)點, 報文格式如下: VariableHeader:Field名稱說明格式Field1TopicName=”$dp”$dp為系統(tǒng)上傳數(shù)據(jù)點的指令2字節(jié)字串長度 + ut

29、f8字串 Payload:Payload包含真正的數(shù)據(jù)點內(nèi)容,支持的格式如下: 字節(jié)說明bit76543210Byte 1Bit0-5數(shù)據(jù)類型指示,目前支持: Type = 1 /可離散浮點數(shù)數(shù)據(jù)流 Type = 7Bit6-7 flags 根據(jù)具體類型不同意義00000001Byte 2根據(jù)數(shù)據(jù)類型指示不同。Byte n數(shù)據(jù)類型1格式說明:Byte 1數(shù)據(jù)點類型值:1 /1: json格式1字符串00000001Byte 2/指示后面json字符串長度固定兩字節(jié)長度高位字節(jié),值為0 x00Byte 3固定兩字節(jié)長度低位字節(jié),值為0 x41Byte 4 “datastreams”:/ 可以同時

30、傳遞多個數(shù)據(jù)流 “id”:”temperature”, “datapoints”:”at”:”2013-04-22 22:22:22”,/可選”value”: 36.5/用戶自定義, “id”:”location”“datapoints”:, Byte n數(shù)據(jù)類型7(type = 7)格式說明:(每次最多500個數(shù)據(jù)流的浮點數(shù))Byte 1Bit0-5數(shù)據(jù)類型指示:type=7 /可離散浮點數(shù)數(shù)據(jù)流Bit6:保留,置0Bit7: 時間指示位,1,攜帶6字節(jié)時間10000111Byte 2年(后兩位),例如2016年,則該字節(jié)為1600010000Byte 3月(1-12)Byte 4日(1-3

31、1)Byte 5小時(023)Byte 6分鐘(059)Byte7秒(059)Byte 8/數(shù)據(jù)流名稱(取值范圍1-65535)高位字節(jié),值為0 x00Byte 9低位字節(jié),值為0 x01Byte10/數(shù)據(jù)流個數(shù)(取值范圍1-500)高位字節(jié),值為0 x00Byte11低位字節(jié),值為0 x01Byte 104字節(jié)float類型,低位在前,高位在后Byte 11Byte 12Byte 13.Byte n/數(shù)據(jù)流名稱(取值范圍1-65535)高位字節(jié),值為0 x24Byte n+1低位字節(jié),值為0 x37Byte n+2/數(shù)據(jù)流個數(shù)(取值范圍1-500)高位字節(jié),值為0 x01Byte n+3低位

32、字節(jié),值為0 x00Byte n+24字節(jié)float類型,低位在前,高位在后Byte n+4Byte n+5Byte n+6 Qos0(Client-Server)設(shè)備發(fā)布Qos0消息(上報數(shù)據(jù)點)平臺收到上報數(shù)據(jù)點后保存起來. Qos1(Client-Server)設(shè)備發(fā)布Qos0消息(上報數(shù)據(jù)點)平臺收到上報數(shù)據(jù)點后保存起來.平臺給設(shè)備回復(fù)PubAck(報文格式參考4.5)5.2.2 平臺命令(下發(fā)&回復(fù))命令下發(fā)平臺使用publish報文來下發(fā)平臺指令, 報文格式如下:FixHeader:參考4.3.1 VariableHeader:Field名稱說明格式Field1TopicName=

33、”$creq/cmduuid”$creq為系統(tǒng)下發(fā)Cmd的指令,cmduuid為該條指令的uuid2字節(jié)字串長度 + utf8字串 Payload:Payload包含真正的指令內(nèi)容.1 Qos0(Server-Client)命令下發(fā):平臺向設(shè)備發(fā)送topic為$creq的消息(該topic為平臺命令). 設(shè)備收到topic為$creq的topic時,需將其作為平臺下發(fā)的指令來處理.命令回復(fù)設(shè)備使用publish報文來回復(fù)平臺指令, 報文格式如下:FixHeader:參考4.3.1 VariableHeader:Field名稱說明格式Field1TopicName=”$crsp/cmduuid”$crsp為系統(tǒng)處理設(shè)備回復(fù)cmd的指令,cmduuid為該條指令的uuid2字節(jié)字串長度 + utf8字串 Payload:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論