参考连接:https://blog.csdn.net/hyz529900/article/details/123917756
1.MQTT协议简介:
MQTT协议是一种 消息列队传输协议,采用订阅、发布机制,订阅者只接收自己已经订阅的数据,
非订阅数据则不接收,既保证了必要的数据的交换,又避免了无效数据造成的储存与处理。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。
2.MQTT协议优点:
可以以极少的代码和有限的带宽,为远程连接设备提过实时可靠的消息服务,是一种低开销、低带宽占用的即时通讯协议;
1.MQTT的独特功能是每个消息头都可以缩短为2个字节。对于HTTP,为每个新请求消息重新建立HTTP连接会产生可观的开销。
MQ和MQTT使用的持久连接可以大大减少这种开销。
2.包容不稳定的网络,MQTT和MQ可以从诸如断开连接之类的故障中恢复,无需进一步的代码要求。
2.包容不稳定的网络,MQTT和MQ可以从诸如断开连接之类的故障中恢复,无需进一步的代码要求。
但是,HTTP本身无法实现此目标,并且客户端必须重试编码,这会增加身份问题。
3.低功耗MQTT专为低功耗目标而设计。 HTTP设计未考虑此因素,这会增加功耗。
4.在连接数百万个客户端的情况下,在HTTP堆栈中维护数百万个并发连接需要大量工作才能提供支持。尽管这种支持是可行的,
3.低功耗MQTT专为低功耗目标而设计。 HTTP设计未考虑此因素,这会增加功耗。
4.在连接数百万个客户端的情况下,在HTTP堆栈中维护数百万个并发连接需要大量工作才能提供支持。尽管这种支持是可行的,
但大多数商业产品都经过优化以处理此订单上的持久连接。 IBM提供了IBM MessageSight,这是一种单机架安装服务器,
已经过测试,可以通过MQTT处理多达一百万个并发设备。相反,MQ不是为许多同时进行的客户设计的。
5.推送通知。您需要能够及时向客户发送通知。为此,您应该使用常规的轮询或推送方法。就电池,系统负载和带宽而言,推送是最佳解决方案。
6.客户端平台的差异。 HTTP和MQTT客户端都在许多平台上实现。 MQTT的简单性可帮助您以最少的努力在其他客户端上实施MQTT。
7.防火墙容错能力。某些公司防火墙将出站连接限制到某些预定义的端口,这些端口通常仅限于HTTP(端口80),HTTPS(端口443)等,
5.推送通知。您需要能够及时向客户发送通知。为此,您应该使用常规的轮询或推送方法。就电池,系统负载和带宽而言,推送是最佳解决方案。
6.客户端平台的差异。 HTTP和MQTT客户端都在许多平台上实现。 MQTT的简单性可帮助您以最少的努力在其他客户端上实施MQTT。
7.防火墙容错能力。某些公司防火墙将出站连接限制到某些预定义的端口,这些端口通常仅限于HTTP(端口80),HTTPS(端口443)等,
HTTP在这种情况下显然可以工作。 MQTT封装在WebSockets连接中,并显示为HTTP升级请求,因此可以在这种情况下运行。
3.MQTT应用: