Normalmente, você precisaria escolher um protocolo com fortes garantias sobre se o cliente receberá pacotes / mensagens, em que ordem e se a duplicação é permitida.
Para uma rede de dispositivos de IoT que enviam mensagens de tamanho pequeno a moderado , o uso do MQTT com Quality of Service 2 parece adequado ao seu caso de uso. Conforme declarado no link HiveMQ:
A QoS mais alta é 2, garante que cada mensagem seja recebida apenas uma vez pela contraparte. É o nível de qualidade de serviço mais seguro e também mais lento. A garantia é fornecida por dois fluxos lá e entre o remetente e o destinatário.
Observe que a QoS 2 preserva a ordem das mensagens e, como indicado, evita mensagens duplicadas.
Existe uma sobrecarga substancial no uso do MQTT QoS 2 em comparação com o QoS 0 padrão (que é semelhante a uma mensagem de ignorar; se não chegar ao intermediário, a mensagem não será reenviada e desaparecerá para sempre ) - QoS 2 requer 4 mensagens ( PUBLISH
do remetente, PUBREC
do broker, PUBREL
do cliente, PUBCOMP
do broker); portanto, geralmente leva mais tempo para processar, consome mais recursos (portanto, transmissões de rádio mais longas e mais uso de energia em quaisquer pontos de extremidade restritos).
Uma mensagem MQTT QoS 2 será reenviada apenas pelo remetente repetidamente até receber confirmação do broker, portanto, eventualmente, sua mensagem será transmitida, mesmo que sua conexão seja imperfeita.
A decisão de determinar se um protocolo de publicação-assinatura com base em tópico é apropriado para o seu caso de uso; o artigo da Wikipedia pode ajudar você a ter uma ideia.