ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:18.56KB ,
资源ID:16540374      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16540374.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MQTT协议详解非常易懂.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

MQTT协议详解非常易懂.docx

1、MQTT协议详解非常易懂MQTT协议详解,非常易懂 协议地址:当然也有PDF版的,XX一下,不过个人感觉不是官网上的字体和排版最舒服。那么这个协议是用做什么或有什么特色呢?下面是mqttrg上的首段介绍:It wasdegned as an tremelylgtweight ublish/ubscribe essaging ansport. t usful fonnctnsithremot locatins whrea smll efootprnt srequird and/o network adwh i at a premium For example, i ha been insenss

2、 ommuicatig to abrkria sellt lnk,oer occasioal dial-up conetons withealtc ridrs, and in ag of hmeauoaion an sal decescarosItis asidea for milapplcaiobecause ofit mal si,low oer uag, mised daapacts, and fie disiuin of infomatin tooner manyreceversMTT是轻量级基于代理的发布/订阅的消息传输协议,它可以通过很少的代码和带宽和远程设备连接。例如通过卫星和代

3、理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协议开销小和能高效的向一和多个接收者传递信息,故同样适用于称动应用设备上。相信在想深入学习这协议必是奔着解决某个问题而来的,上面给出了适用的场景,我之所以想深入的学习和了解这个协议,理由如下:1、可以实现手机消息推送(PUSH)2、协议简单,最小的头部只需2个字节,特别适合于嵌入式中。3、这是个了解什么是协议绝好的例子。相比于其它复杂的协议例如tcp,htp协议,至少说明文档看的下去。在这里,我以推送为例子说明,虽然现在现成的推送解决方案已经比较成熟,但是这个Repeat ReInvent te Wll还是

4、要做一下,什么都是拿来主义,和搬运工有什么区别。一、需要的环境:1、H+Apahe或Nginx2、安装开源代理程序Mosqito,这里用其做为代理服务器,负责连接和分发。安装方法很简单, inar是编译好的,surce是源码安装需要的(makea; ke instal 就行)唯 一要配置的就是在解压后的cnfig.mk,安装完后设置文件是f当然主要是设置是否支持s,还有就是cofigm最下面的安装位置的设定。这里一切默认。默认启动是绑定的P是本地IP,端口是1883可以在moittcon里设置(要去掉前面的#字注释),inu 中 -c 可以指定设置文件并运行比如:moutt -c/etc/mo

5、sut.conf二、协议初解先说一下整个协议的构造,整体上协议可拆分为: 固定头部+可变头部消息体协议说白了就是对于双方通信的一个约定,比如传过来一段字符流,第1个字节表示什么,第2个字节表示什么。一个约定。所以在固定头部的构造如下:1、Mesaepe(0和15保留,共占个字节)phpviewpn copy public $operaions=ary( MQTONNET=>1,/请求连接 MQTT_CNNAC=g;2,/请求应答 MQT_PULISH=&t;3,/发布消息 MQT_BK=&g;4,/发布应答 MQ_UREC=>5,/发布已接收,保证传递 MT_PBRE=>6,

6、/发布释放,保证传递2 QT_PUCOMP=>7,/发布完成,保证传递3 MQT_USCRI=>8,/订阅请求 QTTSUBAKgt;9,/订阅应答 MQTT_UNSUBSCRIBE&g;10,/取消订阅 MTT_UNSUBC=&t;11,/取消订阅应答 MQTT_PINGRE&t;,/n请求 MQTTPIGS=>;13,/pg响应 MTT_DISONNC=gt;4/断开连接 ); 2、DU flg 其是用来在保证消息传输可靠的,如果设置为,则在下面的变长头部里多加MesgeId,并需要回复确认,保证消息传输完成,但不能用于检测消息重复发送。3、Qos主要用于PBLI(发布态)

7、消息的,保证消息传递的次数。0表示最多一次 即&t;=01表示至少一次 即gt;=110表示一次,即=11保留后用4、Retai 主要用于PUBLIH(发布态)的消息,表示服务器要保留这次推送的信息,如果有新的订阅者出现,就把这消息推送给它。如果不设那么推送至当前订阅的就释放了。5、固定头部的bte 是用来保存接下去的变长头部消息体的总大小的。但是不是并不是直接保存的,同样也是可以扩展的,其机制是,前7位用于保存长度,后一部用做标识。我举个例了,即如果计算出后面的大小为0lt;engh<=127的,正常保存如果是127<lengl;6383的,则需要二个字节保存了,将第一个字节的最

8、大的一位置,表示未完。然后第二个字节继续存。拿1来说,第一个字节存0000011,第二个字节存00000000,也就是0x8,x01,把两个字节连起来看,第二个字节权重从的8次开始。同起可以加第3个字节,最多可以加至第个字节。故QTT协议最多可以实现28 45 55(xFF, 0xF,xF, 7F)将近6M的数据。可谓能伸能缩。 可变头部这个是可变头部的全貌。1、首先最上面的8个字节是rtco Ne(编码名),UTF编码的字符“MQIsdp”,头两个是编码名提长为6。这里多说一些,接下去的协议多采用这种方式组合,即头两个字节表示下一部分的长,然后后面跟上内容。这里头两个字节长为6,下面跟6个字

9、符“MQIdp”。、Prooco Vrsin,协议版本号,v3也是固定的。3、CnnectFlag,连接标识,有点像固定头部的。8位分别代表不同的标志。第个字节保留。Cle Sson,Wil l,Will Q, Will Rean都是相对于CNNET消息来说的。CeanSesion:0表示如果订阅的客户机断线了,那么要保存其要推送的消息,如果其重新连接时,则将这些消息推送。 表示消除,表示客户机是第一次连接,消息所以以前的连接信息。Wil Fag,表示如果客户机在不是在发送DCONNECT消息中断,比如O错误等,将些置为,要求重传。并且下且的WillQo和WillReai也要设置,消息体中的T

10、opic和MessagD也要设置,就是表示发生了错误,要重传。il s,在CONNECT非正常情况下设置,一般如果标识了Wlllg,那么这个位置也要标识。Will REAIN:同样在CONNEC中,如果标识了WillFlag,那么些位也一定要标识uenae ag和psswodfg,用来标识是否在消息体中传递用户和密码,只有标识了,消息体中的用户名和密码才用效,只标记密码而不标记用户名是不合法的。4、Kep Aie,表示响应时间,如果这个时间内,连接或发送操作未完成,则断开tcp连接,表示离线。5、Connect Return Co即通常于CNAK消息中,表示返回的连接情况,我可以通过此检验连接

11、情况。6、pic Ne,订阅消息标识,MTT是基于订阅/发布的消息,那么这个就是消息订阅的标识,像新闻客户端里的订阅不同的栏目一样。用于区别消息的推送类别。主要用于PULISH和SUBSRBE中。最大可支持67个字符,即4个字节。消息体(ayLad)只有3种消息有消息体CONCT,SUBSCRIB,UBACKCONNEC主要是客户机的CietID,订阅的Topic和Msse以及用户名和密码,其于变长头部中的wll是对应的。BSCI是包含了一系列的要订阅的主题以及QS。SUBACK是用服务器对于UBIB所申请的主题及QOS进行确认和回复。而PUBLIS是消息体中则保存推送的消息,以二进制形式,当然这里的编辑可自定义。7、Messge Idtier包含于PBLI, PUBAK, UREC,PBEL,PCOMP, SCRIBE, SBACK, UUBSCRIB,UNSUBACK其为16位字符表示,用于在s为1或2时标识Messae的,保证esage传输的可靠性。至于具体的消息例子,我们在后面的代码中慢慢体现。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2