【摘要】 MQTT协议全称是(Message Queuing Telemetry Transport),即消息队列遥测传输协议。是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,并且该协议构建于TCP/IP协议之上,具有高可靠、低开销的特点,
MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议,由 IBM 发布。
目录
Hello,大家好,我是灰小猿!
最近在在物联网相关项目的开发的时候,有用到物联网常用的通信协议–MQTT协议,刚开始对这一块的知识并不是很了解,所以在这里一边学习一边记录,有不合理的地方还希望能多多指正。
MQTT是什么?
MQTT协议全称是(Message Queuing Telemetry Transport),即消息队列遥测传输协议。
是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,并且该协议构建于TCP/IP协议之上,我们知道TCP协议本身就具有高可靠性的特点,因此基于其上的MQTT协议同样也是具有高可靠、低开销的特点,之所以低开销,是以为MQTT协议传输的最小的报文也只有两个字节。
什么是发布/订阅?
我们在上面说到,MQTT协议是一种基于发布/订阅模式的轻量级通讯协议,那么什么是订阅和发布呢?
订阅&发布
订阅包含一个主题过滤器(Topic Filter)和一个最大的服务质量(Qos)等级,订阅与单个会话(Session)关联,会话可以包含多于一个的订阅,会话的每一个订阅都有一个不同的主题过滤器。
我们拿抖音平台来举个例子,我们每一个用户就都是一个客户端,而抖音就是MQTT协议中的服务器,当我们(用户一)关注某一个用户(用户二)时,这样一个关注的行为就可以理解为订阅;同时用户二也可以关注你,那么这就是相互订阅。当用户二发布作品的时候,这个作品是发布到了抖音平台,也就是我们现在的服务器,这个过程就是消息的发布。
在这里需要注意的是:用户二(客户端)发布的消息并不是直接发布给了用户一,而是发布到了抖音平台(服务器),由于用户一订阅了用户二的消息,所以抖音平台(服务器)就会向用户一推送。这就是MQTT协议订阅&发布的一个简单比喻。