mqtt - MQTT 如何节省电池并支持有限的网络连接?

标签 mqtt mosquitto

我一直在阅读有关 MQTT 的资料,我知道它使用 TCP 进行网络传输。因此,如果我有一个将发送订阅请求的移动应用程序,我假设这将是一个全双工连接,以便客户端可以收到传入推送数据的通知。

那么如何提高电池和网络效率呢?我的意思是你仍然建立了一个开放的 TCP 连接。还有它如何处理断开连接,它会自动重新连接到代理吗?

最佳答案

考虑到我对这个问题的评论,假设您想与 HTTP 长轮询进行比较,这两个链接可能有助于回答您的问题:

https://www.ibm.com/developerworks/community/blogs/sowhatfordevs/entry/using_mqtt_protocol_advantages_over_http_in_mobile_application_development5?lang=en

http://stephendnicholas.com/archives/1217

TL;DR 版本:

与 HTTP 相比,MQTT 的消息大小往往要小得多(尤其是当您考虑发送的所有 http header 时),这样可以节省网络使用量,进而节省电池使用量。

至于重新连接方面,客户端库不会自动重新连接,但它们会在连接断开时触发回调,因此您可以根据需要处理重新连接。

关于mqtt - MQTT 如何节省电池并支持有限的网络连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688772/

相关文章:

java - 当我在其他 Activity 中使用 mqtt 客户端时,他们向我显示错误

jquery - 我可以动态更改 paho websocket 中订阅的主题吗?

java - Java 中的 Mqtt 客户端 ssl 示例

redis - Mosquitto ACL,Redis 后端不适用于有空间的主题

arduino - 在 Raspberry Pi、Arduino 和 JavaScript 之间使用 MQTT

android - 如何在离线时存储数据mqtt并在在线时发送它们

java - Spring MVC + Mosquitto + MQTT 集成无法获取任何消息

publish-subscribe - Mosquitto 未在 SYS 主题上发布

acl - Mosquitto 身份验证插件 ACL 检查不会被调用订阅

nginx反向代理wss - 客户端在读取客户端请求行时发送无效方法