我一直在阅读有关 MQTT 的信息,并且我了解它使用 TCP 进行网络传输。因此,如果我有一个将发送订阅请求的移动应用程序,我认为这将是一个全双工连接,因此可以通知客户端传入的推送数据。
那么这如何提高电池和网络效率呢?我的意思是你仍然建立了一个开放的 TCP 连接。还有它如何处理断开连接,它会自动重新连接到代理吗?
考虑到我对该问题的评论,假设您想与 HTTP Long 轮询进行比较,这两个链接可能有助于回答您的问题:
http://stephendnicholas.com/archives/1217
TL;DR 版本:
使用 MQTT 与 HTTP 相比,消息大小往往要小得多(尤其是当您考虑到所有发送的 http 标头时),这样可以节省网络使用量,进而节省电池使用量。
至于重新连接方面,客户端库不会自动重新连接,但它们会在连接断开时触发回调,以便您可以根据需要处理重新连接。