物联网是对传统互联网的扩展和扩展。用户终端从传统的计算机扩展到任何设备,其中设备首先通过各种传感器收集信息,然后通过计算设备收集信息、交换和交换网络信息。mqtt协议之所以出现,是因為移动互联网尚处于起步阶段,无法提供可靠的网络保障。
1、Mqtt有许多优点
1.mqtt的独特功能是每个消息头可以缩短為2个字节。对于HTTP,為每个新请求消息重新建立HTTP连接会产生相當大的开销。MQ和mqtt使用的持久连接可以极大地减少这种开销。
2.遏制不稳定网络。Mqtt和MQ可以从诸如断开连接之类的故障中恢复,而无需进壹步的代码要求。但是,HTTP本身无法实现这壹目标,客户端必须重试编码,这将增
加身份问题。
3.低功耗mqtt设计用于低功耗。
HTTP设计中未考虑此因素,这将增加功耗。
4.當连接数百万个客户端时,在HTTP堆栈中维护数百万个并發连接需要大量工作来提供支持。
尽管这种支持是可行的,但大多数商业产品都经过优化,以处理此订单上的持久连接。IBM提供了IBMmessagesight,这是壹个经过测试的独立安装服务器,可以通过mqtt处理多达壹百万个并發设备。相比之下,MQ不是為许多同时出现的客户设计的。
5.推送通知。
您需要能够及时向客户發送通知。為此,应使用常规轮询或推送方法。就电池、系统负载和带宽而言,推送是最好的解决方案。
6.客户端平台之间的差异。HTTP和mqtt客户端都在许多平台上实现。mqtt的简单性帮助您在其他客户机上以最小的工作量实现mqtt。
7.防火墙容错。某些公司防火墙将出站连接限制為某些预定义端口。这些端口通常限于HTTP(端口80)、HTTPS(端口443)等。HTTP显然在这种情况下起作用。Mqtt封装在WebSockets连接中,并显示為HTTP升级请求,因此它可以在这种情况下运行。
mqtt的缺点
事实上,mqtt被广泛使用,几乎可以在任何大型硬件和互联网公司中找到,如Facebook、BP、阿里巴巴和百度。
由于mqtt的技术优势,越来越多的公司选择mqtt作為物联网产品通信的标准协议。因此,工程师们逐渐意识到mqtt协议的功能需要通过大规模商业化来改进。例如:
1.如果没有完整的SDK,则需要不同异构设备的软件SDK包与mqtt服务器(如MCU、Linux、Android、IOS、web)进行通信,实现互联互通。
2.不支持文件和AV。在壹些应用场景中,要传输的信息可能不限于需要通过AV与文件通信的指令,例如语音和视频信号。
3.不支持与第叁方HTTP集成。Mqtt协议优于传统的HTTP协议,但基于传统HTTP协议的Web服务器在主流市场上仍占据主导地位。这些服务器应与mqtt协议互连,以降低升级成本。
4.不支持负载分配。负载分布服务器对于高并發性和防止恶意攻击也至关重要。
5.不支持用户管理界面。这在用户分析设备行為数据时尤為重要。在工业4.0和大数据时代,这是壹种必然的需求。
6.设备脱机后,不支持脱机消息来补偿从mqtt服务器到设备的控制信息丢失。
7.不支持点对点通信,使用标准mqtt协议。理论上,点对点通信可以通过相互订阅来实现,但逻辑相对复杂,涉及设备安全。當设备B和设备C相同时——在对象的情况下,设备a无法知道消息是来自设备B还是来自设备C,并且消息很可能被设备D***。
8、不支持集团沟通和集团管理,实现集团成员的管理。团队成员可以交换消息,如果壹台设备由多人控制或多台设备由壹人控制,这壹点尤其有用。