Por lo general, deberá elegir un protocolo con fuertes garantías sobre si el cliente recibirá algún paquete / mensaje, en qué orden y si se permite la duplicación.
Para una red de dispositivos IoT que se envían mensajes entre pequeños y moderados , usar MQTT con Quality of Service 2 parece encajar bien en su caso de uso. Como se indica en el enlace HiveMQ:
La QoS más alta es 2, garantiza que cada mensaje sea recibido solo una vez por la contraparte. Es el nivel de calidad de servicio más seguro y también el más lento. La garantía es proporcionada por dos flujos de ida y vuelta entre el emisor y el receptor.
Tenga en cuenta que QoS 2 conserva el orden de los mensajes y, como se indicó, evita los mensajes duplicados.
Hay una sobrecarga considerable en el uso de MQTT QoS 2 en comparación con la QoS 0 estándar (que es similar a un mensaje de disparar y olvidar; si no llega al intermediario, el mensaje no se reenvía y desaparece para siempre ) - QoS 2 requiere 4 mensajes ( PUBLISH
del remitente, PUBREC
del intermediario, PUBREL
del cliente, PUBCOMP
del intermediario), por lo que generalmente tomará más tiempo procesar, más recursos (por lo tanto, transmisiones de radio más largas y más uso de energía en cualquier punto final restringido).
Un remitente MQTT QoS 2 simplemente se reenviará del remitente varias veces hasta que reciba el acuse de recibo del intermediario, por lo que eventualmente su mensaje debería pasar, incluso si su conexión es imperfecta.
Depende de usted determinar si un protocolo de publicación-suscripción basado en temas es apropiado para su caso de uso; El artículo de Wikipedia podría ayudarlo a hacerse una idea.