Recentemente, li uma pergunta do Quora sobre se o CoAP ou o MQTT é mais leve, mas as respostas não parecem particularmente satisfatórias e todas se contradizem: a resposta principal diz que o MQTT consome menos recursos e outra abaixo diz que o CoAP é menos exigente.
Pelo que eu descobri, faria sentido que o CoAP fosse menos exigente que o MQTT , já que o CoAP exige apenas UDP, e suas mensagens são principalmente disparar e esquecer, ao contrário do MQTT que funciona por TCP (e, portanto, seria muito mais envolvidos).
Qual protocolo requer menos recursos para funcionar?
Por recursos, estou pensando principalmente na potência do processador, RAM e dados a serem transmitidos. Por exemplo, na pergunta do Quora que eu vinculei , a resposta principal aponta que um chip ESP8266 simples poderia executar o MQTT, que possui apenas um processador de 80 MHz e menos de 1 MB de RAM. Estou curioso para saber se o CoAP pode ser executado em algo assim ou em um ambiente ainda mais restrito.
O tipo de caso de uso que eu estou pensando é onde o dispositivo estaria recebendo dados de outro dispositivo (por exemplo, comandos para ativar / desativar), mas pode precisar enviar com pouca frequência (talvez algumas vezes por hora) atualizações com o status do dispositivo . Gostaria de usar o mínimo de poder de processamento possível para reduzir os custos do dispositivo e transmitir relativamente pouca frequência para reduzir ao máximo o uso de energia.
fonte
Respostas:
CoAP e MQTT têm o mesmo uso de RAM, medido em 10kbits [1].
A diferença está no uso da CPU e da rede: [2]
Portanto, o CoAP tem menos espaço ocupado e, de acordo com todo o caso de uso (pequenos dados de vez em quando), parece ser a melhor opção.
Como você mencionou, o CoAP usa UDP. Não garante a entrega de dados. Ainda assim, ele executa 'excelente' em condições de perda, enquanto o MQTT é apenas 'bom'. Então, eu não me preocuparia muito com isso.
Fontes:
[1] http://embedded-computing.com/articles/internet-things-requirements-protocols/
[2] http://www.altencalsoftlabs.com/blogs/2016/08/08/analyzing-mqtt-vs-coap/
fonte