我最近在Quora 上看到了一个关于 CoAP 或 MQTT 是否更轻量级的问题,但答案似乎并不是特别令人满意,而且都相互矛盾:最上面的答案说 MQTT 占用的资源更少,而下面的另一个说 CoAP 要求不高。
从我发现的情况来看,CoAP 的要求比MQTT低是有道理的,因为 CoAP 只需要 UDP,并且它的消息主要是即发即忘,不像 MQTT 在 TCP 上运行(因此会更多涉及)。
哪种协议需要最少的资源才能运行?
对于资源,我主要考虑所需的处理器能力、RAM 和要传输的数据。例如,在我链接的 Quora 问题中,最上面的答案指出,一个简单的ESP8266芯片可以运行 MQTT,它只有 80MHz 的处理器和不到 1MB 的 RAM。我很好奇 CoAP 是否可以在这样的环境中运行,或者在更受限的环境中运行。
我设想的那种用例是设备主要从另一个设备接收数据(例如打开/关闭命令),但可能需要很少(可能每小时几次)发送设备状态的更新. 我想使用尽可能少的处理能力来降低设备成本,并以相对低频率的方式传输以尽可能减少功耗。