大家好,物联网爱好小组成员超子,又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖。上一篇文章超子给大家介绍了一下,MQTT协议中服务质量等级的概念,后来想了下,还得补充一写内容。
在实际使用阿里云物联网平台的时候,我们会看到,阿里云仅支持等级0和等级1,并不支持等级2。而且非常多的商用平台,诸如百度云,腾讯云等等也是如此。为什么会这样呢,我们就要从上图中的描述说起。
等级0描述,最多分发一次,就是一锤子买卖,收到也罢收不到也罢,反正就这一次。
等级1描述,至少分发一次,回想上文,等级1必须要得到1次确认,也就是说你至少能得到一次数据,要是突然又给你送来一次,也是满足描述要求的,不能埋怨对方出错。
等级2描述,只分发一次,这个对服务的要求一下就高了起来,服务方不仅要保证你能得到数据,还必须保证就得到一次,如果失误了,又发了一次给你,那就是违约了,该赔偿了。
所以等级1成功次数是>=1,等级2成功次数是=1。等级2对服务器的负担是最大的。对于阿里云物联网平台而言,即便是等级1,服务也是有限制的,如果当阿里云使用等级1的服务给你推送数据的时候,你没有确认,阿里云也不会一直给你重发,它是有个限制的,超过一定时间限制,你还是不确认签收的话,他就不再给你重发了,这个要注意一下。