Para evitar a necessidade de estar em uma rede que permita tráfego de entrada , você precisa conectar a saída a um servidor que retransmitirá solicitações de clientes que também fazem conexões de saída com ele.
Em essência, é como o modelo de um satélite de comunicação. O computador ou telefone do usuário ou o que quer que seja, e o dispositivo IoT, mantêm os links "ativos" para esse servidor na nuvem, e cada mensagem que aparece de um lado é enviada e, por outro, e vice-versa.
Existem muitas maneiras possíveis de implementar esse servidor. Um que está na moda atualmente é torná-lo um MQTT Broker . No MQTT, os clientes (tanto o dispositivo de IoT quanto os dispositivos de usuário) fazem conexões de saída com o broker e as mensagens de compartilhamento quebradas que são "publicadas" em um "tópico" por um cliente para todos os clientes que "assinaram" esse "tópico" " tema.
Como já existe uma conexão estabelecida, o broker pode enviar tráfego não solicitado para baixo sem latência no intervalo de pesquisa
Para manter as conexões estabelecidas, o tráfego ocasional de keep-alive é enviado
Se a conexão quebrar, existem regras para tentar restabelecê-la
Essencialmente, a latência perceptível ocorre apenas se o intermediário tentar retransmitir uma mensagem e a conexão acabar quebrada e ainda não reparada; nesse caso, a mensagem seria adiada até que a reconexão seja concluída. (Existem opções para reter mensagens, descartá-las etc.).