成都众山科技官网 成都众山科技官网

028-64267900

了解更多众山讯息——多年的通信软硬件开发经验使公司在通信产品开发和技术服务方面有着丰富的经验和雄厚的实力

了解更多众山讯息

多年的通信软硬件开发经验使公司在通信产品开发和技术服务方面有着丰富的经验和雄厚的实力

在线咨询
首页 > 新闻资讯 > 公司快讯

物联网MQTT协议的优缺点

时间:2021-06-22 作者:众山科技

  物联网是传统互联网的延伸。最终用户从传统的计算机扩展到任何设备,即首先通过各种传感器收集信息,然后通过计算机设备进行信息的采集、交换和网络信息的交换。MQTT协议的出现是因为移动互联网还处于起步阶段,不能为其提供可靠的网络保障。

  一、MQTT的优点。

  1、MQTT的独特之处在于,它可以将每个报头缩短为2个字节。使用HTTP,重新建立与每个新请求消息的HTTP连接将带来相当大的开销。使用MQ和MQTT的持久连接可以显著降低此开销。

  2、包含不稳定的网络,MQTT和MQ可以在没有任何编码要求的情况下从断开连接等故障中恢复。然而,HTTP本身不能达到这个目标,而客户机必须重新尝试编码,这会增加身份问题。

  3、MQTT是专门为实现低功耗目标而设计的。这一点在HTTP设计中没有考虑到,增加了功耗。

  4、在HTTP协议栈中,要维护数百万个并发连接,要连接数百万个客户机,需要做很多工作来提供支持。虽然这种支持是可行的,但是大多数商业产品都在处理此订单的持久连接方面进行了优化。IBMMessageSight是IBM提供的一种单机架安装服务器,经过测试,它可以处理多达100万个MQTT并发设备。反之,MQ并没有被设计给很多同步的客户。

  5、推送通知。你必须能够及时地向客户发送通知。要做到这一点,你应该使用常规的push方法。在电池、系统负载和带宽方面,推式是最好的解决方案。

  6、客户平台的差异。许多平台上实现了HTTP和MQTT客户端。MQTT的简单性可以帮助您用最小的努力将MQTT应用于其他客户端。

  7、防火墙的容错性。一些公司的防火墙限制出站连接到特定的预定义端口,这些端口通常局限于HTTP(端口80)、HTTPS(端口443)等等,在这种情况下HTTP显然能够正常工作。在WebSockets连接中封装的MQTT,显示为HTTP升级请求,因此可以在这种情况下运行。

  二、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、不支持群组通信或群组管理,而是实现对组成员的管理。团队成员可以交换信息,如果一个设备被多个人控制,或者有多个设备被一个人控制,这个特性就特别有用。

  MQTT协议原理。

  实现MQTT协议需要客户端和服务器通信。在通信过程中,MQTT协议有三种身份:发布者、代理商和订阅者。其中,消息发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

  MQTT协议的方法。

  在MQTT协议中,有一些方法(也称为动作)被定义为操作确定的资源。该资源可代表预先存在的数据或动态生成数据,这取决于服务器的实现。一般来说,资源是指服务器上的文件或输出。其主要方法如下:

  (1)计算机。等待与服务器建立连接。

  (2)Disconnect。等MQTT客户端完成工作,与服务器断开TCP/IP对话。

  (3)Subscribe。等待订阅完成。

  (4)UnSubscribe。等待服务器取消一个或多个客户端订阅。

  (5)Publish。MQTT客户端发送信息请求,发送完成后返回应用程序线程。