MQTT连接耗电少
MQTT connection consumes less power
MQTT 声称在保持代理和客户端之间的连接打开时消耗更少的电量。我相信应用层不需要做任何特殊的事情来保持 TCP 连接,而 MQTT 是一个应用层协议。那么,MQTT在这方面是如何发挥作用的呢?
我认为 MQTT 被认为比 HTTP 功耗更低,主要是因为减少了传输的数据量,尤其是通过无线 link。
- MQTT 是二进制协议,因此开销较小
- 通过维护持久的 TCP 连接,避免了为每个已发布的数据项建立连接的开销
最大的节省是当客户端需要订阅消息时——等待远程系统向它发送数据。使用纯 HTTP,它需要某种轮询——消耗大量能量,即使在没有消息的情况下也是如此。使用 MQTT,可以通过打开的 TCP 连接将消息推送到客户端。
虽然还有很多其他协议也允许这样做。 MQTT 就是为此目的而设计的。
HTTP(S) 不会保持连接打开 - 因此要获得持续连接的 "effect",HTTPS 客户端必须不断发出轮询请求,每个请求都涉及创建 TCP 连接和每次需要投票时协商 SSL/TLS 加密等。
相比之下,MQTT 在开始时建立连接,因此 TCP 和 SSL/TLS 开销成本仅需支付一次。 MQTT 在 TCP 连接之上的应用程序之间有一个保持活动的消息流,这样应用程序就可以检测到连接何时断开,这允许 MQTT 代理在连接断开时最后 will/testament 可靠地发布(可选)客户端坏了。
你看文章说MQTT比HTTPS省50%手机电量,我觉得。
MQTT 声称在保持代理和客户端之间的连接打开时消耗更少的电量。我相信应用层不需要做任何特殊的事情来保持 TCP 连接,而 MQTT 是一个应用层协议。那么,MQTT在这方面是如何发挥作用的呢?
我认为 MQTT 被认为比 HTTP 功耗更低,主要是因为减少了传输的数据量,尤其是通过无线 link。
- MQTT 是二进制协议,因此开销较小
- 通过维护持久的 TCP 连接,避免了为每个已发布的数据项建立连接的开销
最大的节省是当客户端需要订阅消息时——等待远程系统向它发送数据。使用纯 HTTP,它需要某种轮询——消耗大量能量,即使在没有消息的情况下也是如此。使用 MQTT,可以通过打开的 TCP 连接将消息推送到客户端。
虽然还有很多其他协议也允许这样做。 MQTT 就是为此目的而设计的。
HTTP(S) 不会保持连接打开 - 因此要获得持续连接的 "effect",HTTPS 客户端必须不断发出轮询请求,每个请求都涉及创建 TCP 连接和每次需要投票时协商 SSL/TLS 加密等。
相比之下,MQTT 在开始时建立连接,因此 TCP 和 SSL/TLS 开销成本仅需支付一次。 MQTT 在 TCP 连接之上的应用程序之间有一个保持活动的消息流,这样应用程序就可以检测到连接何时断开,这允许 MQTT 代理在连接断开时最后 will/testament 可靠地发布(可选)客户端坏了。
你看文章说MQTT比HTTPS省50%手机电量,我觉得。