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

下載本文檔

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

文檔簡(jiǎn)介

MessageQueuingTelemetryTransport(MQTT)版本號(hào)修訂日期修訂內(nèi)容闡明V1.1/9/8草稿V2.0/4/8重構(gòu)LiuyuanV2.1/4/19豐富報(bào)文格式,業(yè)務(wù)流程LeihongV2.2/7/13增長(zhǎng)設(shè)備間訂閱,創(chuàng)立topic功能Leihong4.4PUBLISH(server->client)FixedheaderBit76543210byte1MQTTPacketTypeDUPflagQoSLevelRETAINbyte2-5RemainingLength(該字段占用1?4個(gè)字節(jié))DUP:QoS1:如果為0,則表達(dá)是第一次發(fā)送該包,如果為1,則表達(dá)為反復(fù)發(fā)送的包。QosO:DUP必須為0QOS:指定了該publish包的qos等級(jí)如下RETAIN:Qos值Bit2Bitl描述000最多發(fā)送一次PS:該版本只實(shí)現(xiàn)QosO4.4.2VariableHeaderDescription格式Fie1d1TopicName2字節(jié)字串長(zhǎng)度+utf8字串4.4.3PayIoad內(nèi)容根據(jù)不同業(yè)務(wù)自定義.4.5PUBACK1FixedheaderBit76543210byte1MQI1PacketType0000byte2 ~5RemainingLength(該字段占用1—4個(gè)字節(jié))4.4.2VariableHeaderDescription76543210byte1?2PacketldentifierPaeketIdentifier4.6SUBSCRIBE1FixedheaderBit76543210byte1MQTTPacketType0000byte2?5RemainingLength(該字段占用4個(gè)字節(jié))Vari?bIeHeaderDescription76543210byte1?2Paeket1dentifierPacketldentifierPayloadDescription格式Bytel^nTopicName2字節(jié)字串長(zhǎng)度+utf8字串Byten+1Reserved保存字力(兼容mqtt-v3.1.1)topic闡明可以涉及一種或多種topic.topic必須是數(shù)字、英文、反斜杠(/)的組合,目前不支持通配符。每個(gè)客戶端最多訂閱100個(gè)t。pic;如下topic被系統(tǒng)保存使用,(客戶端不能訂閱):類型闡明$開(kāi)頭平臺(tái)保存4.7SUBACK4.6.1Fixedhead?rBit76543210byte1MQTTPacketType0000byte2~5RemainingLength(該字段占用1-4個(gè)字節(jié))4.6.2VariableHeaderDescription76543210byte1~2PacketldentifierPacketldentifier4.6.3PayloadDescription76543210byte1retcode返回碼闡明:返回碼描述0xOO成功0x80失敗4.8UNSUBSCRIBE4.7.1FixedheaderBit76543210byte1MQTTPacketType0000byte2?5RemainingLength(該字段占用1-4個(gè)字力)4.7.2VariableHeaderDescription76543210byte1~2PacketldentifierPacketldentifier4.7.3PayloadDescription格式Bytel^nTopicName2字節(jié)字串長(zhǎng)度+utf8字串可以涉及一種或多種t。Pic.4.9UNSUBACK4.9.1FixedheaderBit76543210byte1MQTTPacketType0000byte2?5RemainingLength(該字段占用1?4個(gè)字節(jié))4.9.2VariableHeaderDescription76543210byte1?2PacketIdentifierPacketIdentifier55接入流程5接入流程5.1連接鑒權(quán)DeviceOnenet(Connect)鑒權(quán)請(qǐng)求鑒權(quán)5接入流程5.1連接鑒權(quán)DeviceOnenet(Connect)鑒權(quán)請(qǐng)求鑒權(quán)力口載session設(shè)備向平臺(tái)發(fā)起connect祈求.connect中攜帶鑒權(quán)信息,具體參見(jiàn)(報(bào)文格式參照4.1)平臺(tái)拿到鑒權(quán)信息進(jìn)行鑒權(quán).鑒權(quán)通過(guò)后,如果cl一。nsession=0,平臺(tái)將會(huì)加載保存的設(shè)備的某些信息.如訂閱列表中描述).如果cleansession=l,設(shè)備沒(méi)有保存信息在平臺(tái),則不加載設(shè)備有關(guān)信息.?返回鑒權(quán)成果。。的人。1<(報(bào)文格式參照4.2).5.2消息發(fā)布5.2.1數(shù)據(jù)點(diǎn)上報(bào)設(shè)備使用publish報(bào)文來(lái)上傳數(shù)據(jù)點(diǎn),報(bào)文格式如下:VariabIeHeader:Fie1d名稱闡明格式Fie1dlTopicName二〃$dp”$dp為系統(tǒng)上傳數(shù)據(jù)點(diǎn)的指令2字節(jié)字串長(zhǎng)度+utf8字串Payload:PayIoad涉及真正的數(shù)據(jù)點(diǎn)內(nèi)容,支持的格式如下:字節(jié)闡明\bit76543210Byte1BitO-5數(shù)據(jù)類型批示,目前支持:Type='〃可離散浮點(diǎn)、數(shù)數(shù)據(jù)流Type=7Bit6-7flags根據(jù)具體類型不批準(zhǔn)義00000001Byte2根據(jù)數(shù)據(jù)類型批示不同oooByten數(shù)據(jù)類型1格式闡明:數(shù)據(jù)類型7(type==7)格式闡明:(每次最多500個(gè)數(shù)據(jù)流的浮點(diǎn)數(shù))Byte1BitO-5數(shù)據(jù)類型批示:type=7〃可離散浮點(diǎn)數(shù)數(shù)據(jù)流Bit6:保存,置0Bit7:時(shí)間批示位,1,攜帶6字節(jié)時(shí)間10000111Byte2年(后兩位),例如,則該字節(jié)為1600010000Byte3月(1-12)Byte4日(1?31)Byte5小時(shí)(0~23)Byte6分鐘(0~59)Byte7秒仍59)Byte8〃數(shù)據(jù)流名稱(取值范疇1-65535)高位字節(jié),值為0x00Byte9低位字節(jié),值為0x01BytelO〃數(shù)據(jù)流個(gè)數(shù)(取值范疇1-500)高位字節(jié),值為0x00Byte11低位字節(jié),值為0x01Byte104字節(jié)f1oat類型,低位在前,高位在后Byte11Byte12Byte13???Byten//數(shù)據(jù)流名稱(取值范疇1-65535)高位字節(jié),值為0x24Byten+1低位字節(jié),值為Ox37Byten+2//數(shù)據(jù)流個(gè)數(shù)(取值范疇1-500)高位字節(jié),值為0x01Byten+3低位字節(jié),值為0x00Byten+24字節(jié)float類型,低位在前,局位在后Byten+4Byten+5Byten+6.1QosO(CIient->Server)DeviceDeviceDeviceOneNetPublish$dp(QosO)DeviceOneNet存儲(chǔ)?設(shè)備發(fā)布Qos。消息(上報(bào)數(shù)據(jù)點(diǎn))?平臺(tái)收到上報(bào)數(shù)據(jù)點(diǎn)后保存起來(lái).Qosl(Client->Server)設(shè)備發(fā)布QosO消息(上報(bào)數(shù)據(jù)點(diǎn))平臺(tái)收到上報(bào)數(shù)據(jù)點(diǎn)后保存起來(lái).平臺(tái)給設(shè)備答復(fù)PubAck(報(bào)文格式參照4.5)5.2.2平臺(tái)命令(下發(fā)&答復(fù))命令下發(fā)平臺(tái)使用pubIish報(bào)文來(lái)下發(fā)平臺(tái)指令,報(bào)文格式如下:FixHeader:VariableHeader:Field名稱闡明格式Field1TopicName=,,$creq/cmduuid〃$creq為系統(tǒng)下發(fā)Cmd日勺指令,cmduuid為該條指令日勺u(yù)uid2字節(jié)字串長(zhǎng)度+utf8字串Payload涉及真正的指令內(nèi)容.1QosO(Server->Client)DevicePublish$creq(QosO)?命令下發(fā):目錄接入流程3。Packet格式說(shuō)明。錯(cuò)誤!未定義書簽。TOC\o"1-5"\h\z\o"CurrentDocument".1Fixedheader 4.2Variab1eHeader&Payload錯(cuò)誤!未定義書簽。支持的packet5。\o"CurrentDocument"4.1CONNECT 5\o"CurrentDocument"4.1.1FixedHeader 5\o"CurrentDocument"4.1.2VariableHeader 54.1.3Payload。錯(cuò)誤!未定義書簽。4.2°CONNACK錯(cuò)誤!未定義書簽。\o"CurrentDocument"4.2.1FixedHeader64.2.2VariableHeader6。4.3PUBLISH(client?>serverj7。\o"CurrentDocument"4.3.1Fixedheader 74.3.2VariableHeader。錯(cuò)誤!未定義書簽。4.3.3Pay1oad 84.4oPUBLISH(server—>client)8o4.4.1Fixedheader。8\o"CurrentDocument"4.4.2VariableHeader 84.4.3PayIoad°8\o"CurrentDocument"PUBACK 94,4.1Fixedheader。9\o"CurrentDocument"4.4.2Variab1eHeader 9SUBSCRIBE。9\o"CurrentDocument"451Fixedheader 9\o"CurrentDocument"4.5.2VariableHeader 9\o"CurrentDocument"453Payload 94.7 SUBACK10。4.6.1Fixedheader 104.6.2VariableHeader 10463Payload 1 0\o"CurrentDocument"8RNSUBSCRIBE 137,工Fixedheader 1 07.2VariableHeaderlh4.7.3Payload 1 14.9UNSUBACK。11Fixedheader。錯(cuò)誤!未定義書簽。\o"CurrentDocument"492Variab1eHeader 115。接入流程。125.1。連接鑒權(quán)12。平臺(tái)向設(shè)備發(fā)送topic為$5已口的消息(該topic為平臺(tái)命令).設(shè)備收到topic為$ceq的t。pic時(shí),需將其作為平臺(tái)下發(fā)的指令來(lái)解決.命令答復(fù)設(shè)備使用publish報(bào)文來(lái)答復(fù)平臺(tái)指令,報(bào)文格式如下:FixHeader:VariabIeHeader:Field名稱闡明格式FieldlTopicName=〃$crsp/cmduuid"$crsp為系統(tǒng)解決設(shè)備答復(fù)cmd的指令,cmduuid為該條指令H勺u(yù)uid2字節(jié)字串長(zhǎng)度+utf8字串Payload:PayIoad涉及真正答復(fù)的指令內(nèi)容.1Qos0(Client->Server)Pulish$crsp(QosO).1Qos1(Client<->Server)如果設(shè)備答復(fù)響應(yīng)時(shí)以Qos1答復(fù),則平臺(tái)需要給設(shè)備答復(fù)一種Puback消息5.3倉(cāng)位TopicDevice)HTTP請(qǐng)求HTTP響應(yīng)?設(shè)備通過(guò)發(fā)送HTTP祈求進(jìn)行topic的創(chuàng)立操作.?平臺(tái)收到祈求后創(chuàng)立topiC并返回成果.祈求及響應(yīng)定義如下:http措施POSTURLhttp:///mqtt/topicHTTP頭部api-key:xxxx-ffff-zzzzz,必須masterkeyURL參數(shù)HTTPbody內(nèi)容(〃name〃:〃xxxxxx"〃topic名字,只能由英文,下劃線,反斜杠構(gòu)成,最長(zhǎng)1024個(gè)字符,同一產(chǎn)品下topicname不反復(fù)。}成功返回("errno":0,”error":"succ")闡明每個(gè)產(chǎn)品最多100個(gè)topic54訂閱DeviceSubscribe更新設(shè)備訂閱列表Suback設(shè)備發(fā)起訂閱祈求.(報(bào)文格式參照4.6)平臺(tái)收到祈求后更新topic列表.平臺(tái)給設(shè)備答復(fù)SubAck.(報(bào)文格式參照4.7)取消訂閱DeviceOneNetUnSubscribe更新設(shè)備訂閱列表UnSuback?設(shè)備發(fā)起取消訂閱祈求. (報(bào)文格式參照4.8)?平臺(tái)收到祈求后更新t。pic列表.?平臺(tái)給設(shè)備答復(fù)UnSubAck.(報(bào)文格式參照4.9)推送設(shè)備TopicPublish報(bào)文推送:Publish到訂閱設(shè)備PublishPublish到訂閱設(shè)備PubAck設(shè)備發(fā)起推送topic祈求.(報(bào)文格式參照5.5.1)平臺(tái)收到祈求后,將t。pic推送到有關(guān)訂閱設(shè)備.(目前只支持在線推送)平臺(tái)返回推送QCk(取決于qos).(報(bào)文格式參照4.5)設(shè)備使用Publish報(bào)文來(lái)推送Topic.報(bào)文格式如下:FixHeader:VariabieHeader:Field名稱闡明格式FieldTopicName填寫設(shè)備訂閱的1topic2字節(jié)字串長(zhǎng)度+utf8字Payload:PayIood為設(shè)備自定義內(nèi)容5.6.2HTTP祈求推送設(shè)備以HTTP的方式發(fā)起推送topic祈求.平臺(tái)收到祈求后,將topic推送到有關(guān)訂閱設(shè)備.(目前只支持在線推送)平臺(tái)返回推送成果.祈求及響應(yīng)定義如下:HTTP措施POSTURLhttp:///mqttHTTP頭部api-key:xxxx—ffff-zzzzz,必須masterkeyURL參數(shù)topic="XXXXXX〃,必選,在發(fā)送mqtt合同□勺topic.必填H11Pbody內(nèi)容顧客自定義Json或二進(jìn)制數(shù)據(jù)(不不小于64K)成功返回("errno":0,"error":z/succ〃)Ps:歡迎訪問(wèn)設(shè)備云門戶網(wǎng)站注冊(cè)顧客,獲取最新文檔。5.2消息發(fā)布消。TOC\o"1-5"\h\z數(shù)據(jù)點(diǎn)上報(bào)13平臺(tái)命令(下發(fā)&回復(fù))17創(chuàng)建Topic19訂閱錯(cuò)誤!未定義書簽。取消訂閱215?5推送設(shè)備Topic22。1闡明MQTT合同具體內(nèi)容請(qǐng)參見(jiàn)MQTTversion3.1.1官方文檔,本文檔對(duì)此不做具體闡明,僅指明On一N力的規(guī)定、默認(rèn)參數(shù)、以及目前實(shí)現(xiàn)與MQTT官方文檔的差別。該版本支持的功能:鑒權(quán);數(shù)據(jù)點(diǎn)上報(bào)(平臺(tái)指定topic);創(chuàng)立topic;獲取項(xiàng)目的topic列表;訂閱/取消平臺(tái)的topic;設(shè)備間topic訂閱;平臺(tái)命令下發(fā);QosO(cS),Qosl(C->S);2接入流程訪問(wèn)平臺(tái)注冊(cè)顧客;顧客根據(jù)業(yè)務(wù)狀況,在“連接祈求”章節(jié)中選擇EDP登錄方式(目前公測(cè)階段,頁(yè)面尚未提供MQTT登錄選項(xiàng),登錄方式與EDP兼容);登錄需填寫設(shè)備有關(guān)屬性,在項(xiàng)目下新增設(shè)備,獲取項(xiàng)目ID、設(shè)備ID,以及quthinfo等信息;設(shè)備發(fā)送TCP連接祈求到如下地址,發(fā)送封裝的報(bào)文與平臺(tái)交互。平臺(tái)服務(wù)器地址,TCP端口60023Packet格式闡明包格式涉及三部分:FixedHeader所有packet中都必須有VarableHeader部分包具有Payload部分包具有3.1FixedheaderBit76543210byte1MQTTPacketType0000byte2-5RemainingLength(該字段占用1?4個(gè)字節(jié))該版本支持的所有類型:名字值流向描述CONNECT1c->s客戶端祈求與服務(wù)端建立連接CONNACK2s->c服務(wù)端確認(rèn)連接建立PUBLISH3cos發(fā)布消息PUBACK4cos收到發(fā)布消息確認(rèn)SUBSCRIBE8c->s訂閱祈求SUBACK9S->C訂閱確認(rèn)UNSUBSCRIBE10c->s取消訂閱UNSUBACK11s->c取消訂閱確認(rèn)3.2VariabIeHeader&Payload消息類型VariableHeaderPay1oadCONNECT有有CONNACK有有publish有有puback有無(wú)SUBSCRIBE有有SUBACK有有UNSUBSCRIBE有有UNSUBACK有無(wú)4支持的packet4.1CONNECTFixedHeaderBit76543210byte1MQTTPacketType0000byte2—5RemainingLength(該字段占用1-4個(gè)字書)VariableHeaderDescription76543210byte1-2ProtocoINameLength0000000000000100byte3'M'01001101byte4'Q,01010001byte5T01010100byte6,T,01010100Byte7ProtocolLeve100000001Byte8ConnectF1agUserflagPasswordflagWillRetainFlagWi11QosFlagWi1IF1agCIeanSessionFlagReserveByte9一10KeepAlive⑴版本必須設(shè)立為4,平臺(tái)只支持版本v3.1.1,不支持更老日勺版本。使用第三方客戶端時(shí)需要注意選擇對(duì)時(shí)時(shí)版本。userfl。g與pcissw。rdflag平臺(tái)不容許匿名登陸,因此這兩個(gè)標(biāo)志位在連接時(shí)必須設(shè)立為1,否則覺(jué)得合同錯(cuò)誤,平臺(tái)將會(huì)斷開(kāi)連接。wiIIflcig與WillretainfIag/WiIIqosflag平臺(tái)暫不支持wiIIflag,WiHRetainFlog與WillQosFlog必須設(shè)立為0。CieanSessionFIag若客戶端將cIeansession標(biāo)志位設(shè)立為0,當(dāng)其斷開(kāi)后,平臺(tái)將會(huì)保存session,session需保持日勺內(nèi)容涉及:客戶端訂閱的topic列表.客戶端保存session的內(nèi)容涉及:已經(jīng)發(fā)送到服務(wù)端時(shí)但還沒(méi)有收到確認(rèn)的Qosl消息列表.待發(fā)送的QosO列表.Reserve保存位,置0。KeepAlive保活時(shí)間每個(gè)客戶端可自定義設(shè)立連接保持時(shí)間,最短12。秒,最長(zhǎng)65535秒。PayloadDescription與否必須存在格式FieIdlClientIdentifier是2字節(jié)字串長(zhǎng)度+utf8字串Field2UserName是2字節(jié)字串長(zhǎng)度+utf8字串Field3UserPassword是2字節(jié)字串長(zhǎng)度+utf8字串與鑒權(quán)有關(guān)的字段涉及cIi一ntid,us一rncim一和possword,支持鑒權(quán)方式。字段設(shè)立消息示例client_id設(shè)立為平臺(tái)創(chuàng)立設(shè)備時(shí)日勺設(shè)備idusername設(shè)立為“項(xiàng)目ID”password設(shè)立為“鑒權(quán)信息(authJnf。)”c1ient_id=〃123〃username=”433223〃password=”注冊(cè)的1鑒權(quán)信息”各字段闡明如下:項(xiàng)目ID:在平臺(tái)添加項(xiàng)目時(shí)平臺(tái)生成的ID;鑒權(quán)信息(Quth_info):在平臺(tái)申請(qǐng)?jiān)O(shè)備時(shí)填寫設(shè)備的auth_inf。屬性(數(shù)字+字母的字符串),該屬性需要產(chǎn)品內(nèi)具有唯一性;4.2CONNACK4.2.1FixedHeaderB

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論