ONENET设备终端接入协议MQTT_第1页
ONENET设备终端接入协议MQTT_第2页
ONENET设备终端接入协议MQTT_第3页
ONENET设备终端接入协议MQTT_第4页
ONENET设备终端接入协议MQTT_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MessageQueuingTelemetryTransport(MQTT)版本号修订日期修订内容阐明V1.1/9/8草稿V2.0/4/8重构LiuyuanV2.1/4/19丰富报文格式,业务流程LeihongV2.2/7/13增长设备间订阅,创立topic功能Leihong4.4PUBLISH(server->client)FixedheaderBit76543210byte1MQTTPacketTypeDUPflagQoSLevelRETAINbyte2-5RemainingLength(该字段占用1・4个字节)DUP:QoS1:如果为0,则表达是第一次发送该包,如果为1,则表达为反复发送的包。QosO:DUP必须为0QOS:指定了该publish包的qos等级如下RETAIN:Qos值Bit2Bitl描述000最多发送一次PS:该版本只实现QosO4.4.2VariableHeaderDescription格式Fie1d1TopicName2字节字串长度+utf8字串4.4.3PayIoad内容根据不同业务自定义.4.5PUBACK1FixedheaderBit76543210byte1MQI1PacketType0000byte2 ~5RemainingLength(该字段占用1—4个字节)4.4.2VariableHeaderDescription76543210byte1〜2PacketldentifierPaeketIdentifier4.6SUBSCRIBE1FixedheaderBit76543210byte1MQTTPacketType0000byte2〜5RemainingLength(该字段占用4个字节)Vari◦bIeHeaderDescription76543210byte1〜2Paeket1dentifierPacketldentifierPayloadDescription格式Bytel^nTopicName2字节字串长度+utf8字串Byten+1Reserved保存字力(兼容mqtt-v3.1.1)topic阐明可以涉及一种或多种topic.topic必须是数字、英文、反斜杠(/)的组合,目前不支持通配符。每个客户端最多订阅100个t。pic;如下topic被系统保存使用,(客户端不能订阅):类型阐明$开头平台保存4.7SUBACK4.6.1Fixedhead©rBit76543210byte1MQTTPacketType0000byte2~5RemainingLength(该字段占用1-4个字节)4.6.2VariableHeaderDescription76543210byte1~2PacketldentifierPacketldentifier4.6.3PayloadDescription76543210byte1retcode返回码阐明:返回码描述0xOO成功0x80失败4.8UNSUBSCRIBE4.7.1FixedheaderBit76543210byte1MQTTPacketType0000byte2〜5RemainingLength(该字段占用1-4个字力)4.7.2VariableHeaderDescription76543210byte1~2PacketldentifierPacketldentifier4.7.3PayloadDescription格式Bytel^nTopicName2字节字串长度+utf8字串可以涉及一种或多种t。Pic.4.9UNSUBACK4.9.1FixedheaderBit76543210byte1MQTTPacketType0000byte2〜5RemainingLength(该字段占用1・4个字节)4.9.2VariableHeaderDescription76543210byte1〜2PacketIdentifierPacketIdentifier55接入流程5接入流程5.1连接鉴权DeviceOnenet(Connect)鉴权请求鉴权5接入流程5.1连接鉴权DeviceOnenet(Connect)鉴权请求鉴权力口载session设备向平台发起connect祈求.connect中携带鉴权信息,具体参见(报文格式参照4.1)平台拿到鉴权信息进行鉴权.鉴权通过后,如果cl㊀。nsession=0,平台将会加载保存的设备的某些信息.如订阅列表中描述).如果cleansession=l,设备没有保存信息在平台,则不加载设备有关信息.•返回鉴权成果。。的人。1<(报文格式参照4.2).5.2消息发布5.2.1数据点上报设备使用publish报文来上传数据点,报文格式如下:VariabIeHeader:Fie1d名称阐明格式Fie1dlTopicName二〃$dp”$dp为系统上传数据点的指令2字节字串长度+utf8字串Payload:PayIoad涉及真正的数据点内容,支持的格式如下:字节阐明\bit76543210Byte1BitO-5数据类型批示,目前支持:Type='〃可离散浮点、数数据流Type=7Bit6-7flags根据具体类型不批准义00000001Byte2根据数据类型批示不同oooByten数据类型1格式阐明:数据类型7(type==7)格式阐明:(每次最多500个数据流的浮点数)Byte1BitO-5数据类型批示:type=7〃可离散浮点数数据流Bit6:保存,置0Bit7:时间批示位,1,携带6字节时间10000111Byte2年(后两位),例如,则该字节为1600010000Byte3月(1-12)Byte4日(1・31)Byte5小时(0~23)Byte6分钟(0~59)Byte7秒仍59)Byte8〃数据流名称(取值范畴1-65535)高位字节,值为0x00Byte9低位字节,值为0x01BytelO〃数据流个数(取值范畴1-500)高位字节,值为0x00Byte11低位字节,值为0x01Byte104字节f1oat类型,低位在前,高位在后Byte11Byte12Byte13•••Byten//数据流名称(取值范畴1-65535)高位字节,值为0x24Byten+1低位字节,值为Ox37Byten+2//数据流个数(取值范畴1-500)高位字节,值为0x01Byten+3低位字节,值为0x00Byten+24字节float类型,低位在前,局位在后Byten+4Byten+5Byten+6.1QosO(CIient->Server)DeviceDeviceDeviceOneNetPublish$dp(QosO)DeviceOneNet存储•设备发布Qos。消息(上报数据点)•平台收到上报数据点后保存起来.Qosl(Client->Server)设备发布QosO消息(上报数据点)平台收到上报数据点后保存起来.平台给设备答复PubAck(报文格式参照4.5)5.2.2平台命令(下发&答复)命令下发平台使用pubIish报文来下发平台指令,报文格式如下:FixHeader:VariableHeader:Field名称阐明格式Field1TopicName=,,$creq/cmduuid〃$creq为系统下发Cmd日勺指令,cmduuid为该条指令日勺uuid2字节字串长度+utf8字串Payload涉及真正的指令内容.1QosO(Server->Client)DevicePublish$creq(QosO)•命令下发:目录接入流程3。Packet格式说明。错误!未定义书签。TOC\o"1-5"\h\z\o"CurrentDocument".1Fixedheader 4.2Variab1eHeader&Payload错误!未定义书签。支持的packet5。\o"CurrentDocument"4.1CONNECT 5\o"CurrentDocument"4.1.1FixedHeader 5\o"CurrentDocument"4.1.2VariableHeader 54.1.3Payload。错误!未定义书签。4.2°CONNACK错误!未定义书签。\o"CurrentDocument"4.2.1FixedHeader64.2.2VariableHeader6。4.3PUBLISH(client・>serverj7。\o"CurrentDocument"4.3.1Fixedheader 74.3.2VariableHeader。错误!未定义书签。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。错误!未定义书签。\o"CurrentDocument"492Variab1eHeader 115。接入流程。125.1。连接鉴权12。平台向设备发送topic为$5已口的消息(该topic为平台命令).设备收到topic为$ceq的t。pic时,需将其作为平台下发的指令来解决.命令答复设备使用publish报文来答复平台指令,报文格式如下:FixHeader:VariabIeHeader:Field名称阐明格式FieldlTopicName=〃$crsp/cmduuid"$crsp为系统解决设备答复cmd的指令,cmduuid为该条指令H勺uuid2字节字串长度+utf8字串Payload:PayIoad涉及真正答复的指令内容.1Qos0(Client->Server)Pulish$crsp(QosO).1Qos1(Client<->Server)如果设备答复响应时以Qos1答复,则平台需要给设备答复一种Puback消息5.3仓位TopicDevice)HTTP请求HTTP响应•设备通过发送HTTP祈求进行topic的创立操作.•平台收到祈求后创立topiC并返回成果.祈求及响应定义如下:http措施POSTURLhttp:///mqtt/topicHTTP头部api-key:xxxx-ffff-zzzzz,必须masterkeyURL参数HTTPbody内容(〃name〃:〃xxxxxx"〃topic名字,只能由英文,下划线,反斜杠构成,最长1024个字符,同一产品下topicname不反复。}成功返回("errno":0,”error":"succ")阐明每个产品最多100个topic54订阅DeviceSubscribe更新设备订阅列表Suback设备发起订阅祈求.(报文格式参照4.6)平台收到祈求后更新topic列表.平台给设备答复SubAck.(报文格式参照4.7)取消订阅DeviceOneNetUnSubscribe更新设备订阅列表UnSuback•设备发起取消订阅祈求. (报文格式参照4.8)•平台收到祈求后更新t。pic列表.•平台给设备答复UnSubAck.(报文格式参照4.9)推送设备TopicPublish报文推送:Publish到订阅设备PublishPublish到订阅设备PubAck设备发起推送topic祈求.(报文格式参照5.5.1)平台收到祈求后,将t。pic推送到有关订阅设备.(目前只支持在线推送)平台返回推送QCk(取决于qos).(报文格式参照4.5)设备使用Publish报文来推送Topic.报文格式如下:FixHeader:VariabieHeader:Field名称阐明格式FieldTopicName填写设备订阅的1topic2字节字串长度+utf8字Payload:PayIood为设备自定义内容5.6.2HTTP祈求推送设备以HTTP的方式发起推送topic祈求.平台收到祈求后,将topic推送到有关订阅设备.(目前只支持在线推送)平台返回推送成果.祈求及响应定义如下:HTTP措施POSTURLhttp:///mqttHTTP头部api-key:xxxx—ffff-zzzzz,必须masterkeyURL参数topic="XXXXXX〃,必选,在发送mqtt合同□勺topic.必填H11Pbody内容顾客自定义Json或二进制数据(不不小于64K)成功返回("errno":0,"error":z/succ〃)Ps:欢迎访问设备云门户网站注册顾客,获取最新文档。5.2消息发布消。TOC\o"1-5"\h\z数据点上报13平台命令(下发&回复)17创建Topic19订阅错误!未定义书签。取消订阅215・5推送设备Topic22。1阐明MQTT合同具体内容请参见MQTTversion3.1.1官方文档,本文档对此不做具体阐明,仅指明On㊀N力的规定、默认参数、以及目前实现与MQTT官方文档的差别。该版本支持的功能:鉴权;数据点上报(平台指定topic);创立topic;获取项目的topic列表;订阅/取消平台的topic;设备间topic订阅;平台命令下发;QosO(cS),Qosl(C->S);2接入流程访问平台注册顾客;顾客根据业务状况,在“连接祈求”章节中选择EDP登录方式(目前公测阶段,页面尚未提供MQTT登录选项,登录方式与EDP兼容);登录需填写设备有关属性,在项目下新增设备,获取项目ID、设备ID,以及quthinfo等信息;设备发送TCP连接祈求到如下地址,发送封装的报文与平台交互。平台服务器地址,TCP端口60023Packet格式阐明包格式涉及三部分:FixedHeader所有packet中都必须有VarableHeader部分包具有Payload部分包具有3.1FixedheaderBit76543210byte1MQTTPacketType0000byte2-5RemainingLength(该字段占用1・4个字节)该版本支持的所有类型:名字值流向描述CONNECT1c->s客户端祈求与服务端建立连接CONNACK2s->c服务端确认连接建立PUBLISH3cos发布消息PUBACK4cos收到发布消息确认SUBSCRIBE8c->s订阅祈求SUBACK9S->C订阅确认UNSUBSCRIBE10c->s取消订阅UNSUBACK11s->c取消订阅确认3.2VariabIeHeader&Payload消息类型VariableHeaderPay1oadCONNECT有有CONNACK有有publish有有puback有无SUBSCRIBE有有SUBACK有有UNSUBSCRIBE有有UNSUBACK有无4支持的packet4.1CONNECTFixedHeaderBit76543210byte1MQTTPacketType0000byte2—5RemainingLength(该字段占用1-4个字书)VariableHeaderDescription76543210byte1-2ProtocoINameLength0000000000000100byte3'M'01001101byte4'Q,01010001byte5T01010100byte6,T,01010100Byte7ProtocolLeve100000001Byte8ConnectF1agUserflagPasswordflagWillRetainFlagWi11QosFlagWi1IF1agCIeanSessionFlagReserveByte9一10KeepAlive⑴版本必须设立为4,平台只支持版本v3.1.1,不支持更老日勺版本。使用第三方客户端时需要注意选择对时时版本。userfl。g与pcissw。rdflag平台不容许匿名登陆,因此这两个标志位在连接时必须设立为1,否则觉得合同错误,平台将会断开连接。wiIIflcig与WillretainfIag/WiIIqosflag平台暂不支持wiIIflag,WiHRetainFlog与WillQosFlog必须设立为0。CieanSessionFIag若客户端将cIeansession标志位设立为0,当其断开后,平台将会保存session,session需保持日勺内容涉及:客户端订阅的topic列表.客户端保存session的内容涉及:已经发送到服务端时但还没有收到确认的Qosl消息列表.待发送的QosO列表.Reserve保存位,置0。KeepAlive保活时间每个客户端可自定义设立连接保持时间,最短12。秒,最长65535秒。PayloadDescription与否必须存在格式FieIdlClientIdentifier是2字节字串长度+utf8字串Field2UserName是2字节字串长度+utf8字串Field3UserPassword是2字节字串长度+utf8字串与鉴权有关的字段涉及cIi㊀ntid,us㊀rncim㊀和possword,支持鉴权方式。字段设立消息示例client_id设立为平台创立设备时日勺设备idusername设立为“项目ID”password设立为“鉴权信息(authJnf。)”c1ient_id=〃123〃username=”433223〃password=”注册的1鉴权信息”各字段阐明如下:项目ID:在平台添加项目时平台生成的ID;鉴权信息(Quth_info):在平台申请设备时填写设备的auth_inf。属性(数字+字母的字符串),该属性需要产品内具有唯一性;4.2CONNACK4.2.1FixedHeaderB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论