题目
大家好,物联网爱好小组成员超子,又和大家见面了,超子我能力有限,水平不高,有什么缺点的地方,欢迎板砖。通过前面的文章,我们知道了,可以通过HTTP、MQTT和CoAP对接物联网平台,那么超子先从MQTT协议开始吧,详解一下如何利用MQTT协议连接阿里云物联网平台。
超子还是秉承以往的风格,不说那些专业性的描述,由于对付非干系行业的物联网爱好者,确实是不好理解,超子还是用类比的办法,讲一下MQTT怎么事情的。

先感性的描述下,提出几个观点,MQTT便是基于Topic订阅关系的发布与推送,物联网平台做事器全权卖力吸收发布与订阅推送。我们把稳以下5个观点,物联网平台MQTT做事器、Topic、订阅、发布和推送,接下来我们就类比一下。
(1)物联网平台做事器,比喻成今日头条。
(2)Topic,比喻成今日头条的用户名,比如超子我的头条号叫超子说物联网。同理,每个今日头条的用户都有自己的用户名。
(3)订阅,比喻成今日头条中的关注,比如大家以为超子讲的还行的话,可以关注超子说物联网,便是我的Topic。
(4)发布,比喻成在今日头条中发布各种图文或视频的过程。
(5)推送,如果大家关注了超子,那么当超子发布了新文章或视频的时候,今日头条会在关注栏目中推送给大家。
如果大家常常刷头条的话,我想可能大家已经对MQTT的事情办法有点觉得了。但是还有几个点要把稳下。
(1) 纵然你没有关注(订阅)作者的头条号(Topic),头条也可以推送文章给你,但是在MQTT中,这是绝对不许可的,只能收到已订阅Topic的数据,没订阅的一概收不到。
(2)头条中用户之间可以发私信,但是在MQTT中是不许可的,只能通过互粉,便是相互订阅Topic,你发布数据,做事器给对方推送,对方发布数据,做事器给你推送,你俩之间是没有直接数据通道的。
(3)头条中用户之间可以随意加关注,但是大多数的物联网平台是不许可的,由于涉及到数据安全问题,以是都会有权限设置功能,比如哪些Topic可以订阅,哪些不可以订阅,哪些可以发布,哪些不可以发布,什么人可以订阅,什么人不可以订阅等等吧,都是为了数据的安全,当然不同的做事器权限管理各有不同,大家要意识到这点。
末了举个例子,总结一下,假设我们现在要利用MQTT,做一个用APP远程掌握的wifi插座。超子大略的描述一下思路,APP和插座各自有一个Topic,我们起名叫做APP_Topic,wifi_Topic吧。然后它们互粉,APP订阅wifi_Topic,插座订阅APP_Topic,APP往自己的APP_Topic发布一条开插座命令,阿里云看到插座订阅了APP_Topic,以是把开插座命令推送给插座,插座把自己打开,一样平常为了安全,会引入回答确认机制,以是插座往自己的wifi_Topic发布一条已打开的确认命令,然后阿里云看到APP订阅了wifi_Topic,以是就把已打开的确认命令推送给APP,这时APP可以提醒用户,已收到确认命令,用户知道插座已打开,也就放心了。
好啦,我们本日就先说这些吧,超子接下来就要详解MQTT报文了,以是大家一定要把MQTT事情的机制理解清楚。