ONENET设备终端接入协议MQTT样本.doc_第1页
ONENET设备终端接入协议MQTT样本.doc_第2页
ONENET设备终端接入协议MQTT样本.doc_第3页
ONENET设备终端接入协议MQTT样本.doc_第4页
ONENET设备终端接入协议MQTT样本.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

ONENET设备终端接入协议MQTT样本 T ONENET设备终端接入协议MQTT本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 Message QueuingTelemetry Transport(MQTT)版本号修订日期修订内容说明V1.11/9/8草稿V2.00/44/88重构Liuyuan nV2.11/4/19丰富报文格式,业务流程Leihong gV2.22/7/13增加设备间订阅,创建c topic功能Leihong g本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 文档如有不当之处,请联系本人或网站删除。 文档如有不当之处,请联系本人或网站删除。 文档如有不当之处,请联系本人或网站删除。 11说明T MQTT协议详细内容请参见MQTT version,本文档对此不做详细说明,仅指明t OneNet的要求、默认参数、以及当前本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 实现与T MQTT官方文档的差异。 该版本支持的功能:?鉴权;?数据点上报(平台指定topic);?创建topic;?获取项目的c topic列表;?订阅/取消平台的topic;?设备间c topic订阅;?平台命令下发;?Qos0(c?S),Qos1(C-S);22接入流程2.1访问平台注册用户;2.2用户根据业务情况,在“择连接请求”章节中选择EDP登录方式供(当前公测阶段,页面还未提供T MQTT登录选项,登录方式与P EDP)兼容);2.3登录需填写设备相关属性,在项目下新增设备,获取项目ID、设备ID,以及o authinfo等信息;2.4设备发送P TCP连接请求到以下地址,发送封装的报文与平台交互。 ,TCP端口6002本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 33t Packet格式说明包格式包含三部分:Fixed Header有所有t packet中都必须有Varable Header部分包含有Payload部分包含有Fixed header Bit7766554433221100byte11MQTT PacketType0000byte2-55Remaining Length(该字段占用1-4个字节)该版本支持的所有类型:名字值流向描述CONNECT11C C-S客户端请求与服务端建立连接CONNACK22S S-C服务端确认连接建立PUBLISH33C C?S S发布消息PUBACK44C C?S S收到发布消息确认本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 SUBSCRIBE88C C-S订阅请求SUBACK99S S-C订阅确认UNSUBSCRIBE10C C-S取消订阅UNSUBACK11S S-C取消订阅确认Variable Header&Payload消息类型Variable HeaderPayload CONNECT有有CONNACK有有PUBLISH有有PUBACK有无SUBSCRIBE有有SUBACK有有UNSUBSCRIBE有有UNSUBACK有无本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 44支持的的packet4.1CONNECT FixedHeader Bit7766554433221100byte11MQTT PacketType0000byte2-55Remaining Length(该字段占用1-4个字节)VariableHeader Description7766554433221100byte11-22ProtocolName Length00000000000000000000000000110000byte33M M0011000011110011byte44Q Q0011001100000011byte55T T0011001100110000b byteT T0011001100110000本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 66B B yte77Protocol Level0000000000000011Byte88Connect FlagUser flagPassword flagWillRetain F F lagWillQos FF lagWillFlag CleanSessionFFlag Reservee B Byte99-10KeepAlive (11)版本必须设置为44,平台只支持版本v,不支持更老的版本。 使用第三方客户端时需要注意选择正确的版本。 (22)g userflag与与password flag平台不允许匿名登陆,因此这两个标志位在连接时必须设置为11,否则认为协议错误,平台将会断开连接。 (33)g will flag与与Willretainflag/Willqosflag平台暂不支持willflag,WillRetain FFg lag与WillQos FFg lag必须设置为00。 (44)CleanSessionFlag若客户端将n clean session标志位设置为00,当其断开后,平台将会保存session,n session需保持的内容包含:?客户端订阅的c topic列表.本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 客户端保存n session的内容包含:?的已经发送到服务端的但还没有收到确认的1Qos1消息列表.?待发送的0Qos0列表. (55)Reserve保留位,置00。 (66)e KeepAlive保活时间每个客户端可自定义设置连接保持时间,最短0120秒,最长565535秒。 Payload Description是否必须存在格式Field1Client Identifier是22字节字串长度+8utf8字串Field22UserName是22字节字串长度8+utf8字串Field33UserPassword是22字节字串长度8+utf8字串含与鉴权相关的字段包含client id,e username和password,支持鉴权方式。 本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 字段设置消息示例d client_id设置为平台创建设备时的设备id eusername设置为“项目ID”d password设置为“鉴权信息(auth_info)”client_id=”123”username=”433223”password=”注册的鉴权信息”各字段说明如下:项目ID:在平台添加项目时平台生成的ID;鉴权信息(auth_info):在平台申请设备时填写设备的o auth_info属性(数字+字母的字符串),该属性需要产品内具备唯一性;4.2CONNACK FixedHeader Bit7766554433221100byte11MQTT PacketType0000byte2-55Remaining Length(该字段占用1-4个字节)本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 VariableHeader Description7766554433221100byte11Acknowledge Flags00000000000000S Spp byte22Return Codex x x x x x x x xxxxxxxxS Sp:Session PresentFlag,nsession信息在服务器已保持,置11;未保存,置00。 返回码说明:返回码描述00成功11协议版本错误22非法的clientid33服务不可用44用户名或密码错误55非法链接(比如n token非法)本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 失败:*如果t connect包不符合协议内容约束,则直接断掉连接,而不需要发送k connack包.*如果鉴权或授权失败,回复一个带非00错误码的connack包.成功:*必须断掉重复的clientid.*执行cleansession对应的操作.*必须回复一个connack,回复码为00.*开始消息传递,并加入e keepalive的监视.PS:客户端需要等到服务端的k connack,报文,才能发送后续的数据包.4.3PUBLISH(client-server)Fixed header Bit7766554433221100byte11MQTT PacketType DUPflag QoSLevel RETAINbyte2-55Remaining Length(该字段占用1-4个字节)本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 DUP:QoS1:如果为00,则表示是第一次发送该包,如果为11,则表示为重复发送的包。 P Qos0:DUP必须为00QOS:指定了该h publish包的s qos等级如下RETAIN:暂不实现Qos值Bit2Bit1描述000000最多发送一次110011至少发送一次PS:该版本只实现Qos0,Qos1VariableHeader Description格式是否必须Field1T TopicName22字节字串长度8+utf8字串是Field2PacketIdentifier22字节:QoS0:否,QoS1:是本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 Payload内容根据不同业务自定义.4.4PUBLISH(server-client)Fixed header Bit7766554433221100byte11MQTT PacketType DUPflag QoSLevel RETAINbyte2-55Remaining Length(该字段占用1-4个字节)DUP:QoS1:如果为00,则表示是第一次发送该包,如果为11,则表示为重复发送的包。 P Qos0:DUP必须为00QOS:指定了该h publish包的s qos等级如下RETAIN:Qos值Bit2Bit1描述000000最多发送一次本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 PS:该版本只实现Qos0VariableHeader Description格式Field1T TopicName22字节字串长度8+utf8字串Payload内容根据不同业务自定义.4.5PUBACK Fixedheader Bit7766554433221100byte11MQTT PacketType0000byte255Remaining Length(该字段占用1-4个字节)VariableHeader Description7766554433221100本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 byte1122PacketIdentifier PacketIdentifier4.6SUBSCRIBE Fixedheader Bit7766554433221100byte11MQTT PacketType0000byte25Remaining Length(该字段占用1-4个字节)VariableHeader Description7766554433221100byte12PacketIdentifier PacketIdentifierPayload Description格式本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 B Byte1n TopicName22字节字串长度8+utf8字串Byten+1Reserved保留字节(兼容mqtt-v3.1.1)c topic说明能够包含一个或多个topic.c topic必须是数字、英文、反斜杠(/)的组合,当前不支持通配符。 每个客户端最多订阅0100个个topic;以下c topic被系统保留使用,(客户端不能订阅):类型说明$开头平台保留4.7SUBACK FixedheaderBit7766554433221100byte11MQTT PacketType0000本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 byte255Remaining Length(该字段占用1-4个字节)VariableHeader Description7766554433221100byte12PacketIdentifier PacketIdentifierPayload Description7766554433221100byte11retcode返回码说明:返回码描述00x00成功0x80失败本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 4.8UNSUBSCRIBE FixedheaderBit7766554433221100byte11MQTT PacketType0000byte255Remaining Length(该字段占用1-4个字节)VariableHeader Description7766554433221100byte12PacketIdentifier PacketIdentifierPayload Description格式B Byte1n TopicName22字节字串长度8+utf8字本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 串能够包含一个或多个topic.UNSUBACK FixedheaderBit7766554433221100byte11MQTT PacketType0000byte255Remaining Length(该字段占用1-4个字节)VariableHeader Description7766554433221100byte12PacketIdentifier PacketIdentifier本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 55接入流程5.1连接鉴权Device One(Connect)鉴权请求(ConnAck)鉴权结果加载session鉴权?,具体参见()?平台拿到鉴权信息进行鉴权.?鉴权通过后,如果cleansession=0,().如果cleansession=1,设备没有保存信息在平台,则不加载设备相关信息.?返回鉴权结果ConnAck().本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 5.2消息发布数据点上报设备使用h publish报文来上传数据点,报文格式如下:VariableHeader:d Field名称说明格式Field1T TopicName=”$dp”$dp为系统上传数据点的指令22字节字串长度8+utf8字串本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 Payload:d Payload包含真正的数据点内容,支持的格式如下:数据类型11格式说明:字节说明bit7766554433221100B Byte1B Bit0-55数据类型指示,当前支持:T Type=1/可离散浮点数数据流T Type=7B Bit6-7flags根据具体类型不同意义0000000000000011B Byte2根据数据类型指示不同。 B Byte n本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 B Byte1数据点类型值:1/1:json格式11字符串0000000000000011B Byte2/指示后面json字符串长度固定两字节长度高位字节,值为为0x00B Byte3固定两字节长度低位字节,值为为0x41B Byte4“datastreams”:/能够同时传递多个数据流“id”:”temperature”,“datapoints”:”at”:”-04-2222:22:22”,/可选”value”:36.5/用户自定义本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 数据类型7(type=7)格式说明:(每次最多0500个数据流的浮点数)B Byte nn,“id”:”location”“datapoints”:,B Byte1B Bit0-55数据类型指示:type=7/可离散浮点数数据流B Bit6:保留,置00B Bit7:时间指示位,11,携带66字节时间1100000000111111B Byte2年(后两位),例如,则该字节为160000001100000000本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 B Byte3月(11-12)B Byte4日(11-31)B Byte5小时(023)B Byte6分钟(059)B Byte7秒(059)B Byte8/数据流名称(取值范围11-65535)高位字节,值为0x00B Byte9低位字节,值为0x01Byte100/数据流个数(取值范围11-500)高位字节,值为0x00Byte111低位字节,值为0x01B Byte1044字节float类型,低位在前,高位在后B Byte11B Byte12B Byte13.本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 B Byte n/数据流名称(取值范围11-65535)高位字节,值为0x24B Byte n+1低位字节,值为0x37B Byte n+2/数据流个数(取值范围11-500)高位字节,值为0x01Byte n+3低位字节,值为0x00B Byte n+244字节float类型,低位在前,高位在后B Byte n+4B Byte n+5BByte n+6本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 Qos0(Client-Server)Device OneNetPublish$dp(Qos0)存储?设备发布0Qos0消息(上报数据点)?平台收到上报数据点后保存起来.本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 Qos1(Client-Server)Device OneNetPublish$dp(Qos1)存储PubAck?设备发布0Qos0消息(上报数据点)?平台收到上报数据点后保存起来.?平台给设备回复PubAck()本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 平台命令(下发&回复)用平台使用h publish报文来下发平台指令,报文格式如下:FixHeader:VariableHeader:d Field名称说明格式本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 Field1T TopicName=”$creq/cmduuid”$creq为系统下发Cmd,的指令,cmduuid为该条指令的uuid22字节字串长度+8utf8字串Payload:d Payload包含真正的指令内容Qos0(Server-Client)DeviceOneNetPublish$creq(Qos0)?命令下发:平台向设备发送c topic为q$creq的消息(该c topic为平台命令).设备收到c topic为q$creq的的c topic时,需将其作为平台下发的指令来处理.本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 用设备使用h publish报文来回复平台指令,报文格式如下:FixHeader:VariableHeader:d Field名称说明格式Field1T TopicName=”$crsp/cmduuid”$crsp为系统处理设备回复cmd的指令,cmduuid为该条指令的的uuid22字节字串长度+8utf8字串Payload:d Payload包含真正回复的指令内容本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 Qos0(Client-Server)DeviceOneNetPulish$crsp(Qos0)Qos1(ClientServer)DeviceOneNetPulish$crsp(Qos1)Puback如果设备回复响应时以1Qos1回复,则平台需要给设备回复一个Pubak ck消息本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 5.3创建Topic DeviceOneNet请求响应?设备通过发送P 请求进行c topic的创建操作.?平台收到请求后创建c topic并返回结果.请求及响应定义如下:方法POST URLapi.heclouds./mqtt/topic本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 头部api-key:xxxx-ffff-zzzzz,须必须master keyURL参数 body内容“name”:”xxxx xx”/c topic名字,只能由英文,下划线,反斜杠组成,最长长1024个字符,同一产品下下topic ename不重复。 成功返回errno:00,error:“s

温馨提示

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

评论

0/150

提交评论