由于 MQTT 协议流经 TCP,因此三个 QoS 级别之间的差异非常微妙。在正常情况下,TCP 将确保交付并防止重复。
我打算使用 MQTT 将实时数据发送到移动设备,但我不需要可靠的传递。保持尽可能低的电池消耗非常重要,因此最好避免发送不必要的消息(TCP 的确认)。
是否可以通过 UDP 或其他不可靠的传输层协议实现 MQTT?是否有任何现有的图书馆这样做?
由于 MQTT 协议流经 TCP,因此三个 QoS 级别之间的差异非常微妙。在正常情况下,TCP 将确保交付并防止重复。
我打算使用 MQTT 将实时数据发送到移动设备,但我不需要可靠的传递。保持尽可能低的电池消耗非常重要,因此最好避免发送不必要的消息(TCP 的确认)。
是否可以通过 UDP 或其他不可靠的传输层协议实现 MQTT?是否有任何现有的图书馆这样做?
MQTT-S 可以在 UDP 上运行,但目前还没有任何公开可用的库。你确定电池使用有那么大的问题吗?在http://stephendnicholas.com/archives/219上对 Android 上的 MQTT 电源使用进行了一些实验。
我认为 MQTT 本身确实利用了 TCP 交付和排序保证。我相信很难保证它在 UDP 上工作。