Escenario
Dispositivo IoT (actualmente dispositivo IPv4) que envía a través del socket TCP una carga útil a un servidor una vez al día. El servidor tiene una dirección IP pública, el dispositivo está detrás de un enrutador / NAT. Voy a usar un módulo basado en ESP8266 (es decir, Olimex uno)
Objetivo
El servidor debe poder enviar datos a cualquier cliente cuando sea necesario. No estoy interesado en la comunicación directa de cliente a cliente (es decir, conectarme a un dispositivo desde mi teléfono inteligente) como se supone que debe hacer la perforación.
Otros requisitos
Los dispositivos IoT pueden crecer hasta varios miles. Su conexión a Internet es proporcionada por muchos enrutadores / módems con capacidad 4G. Cada uno manejará 10-20 clientes.
Solución propuesta
Hasta donde yo entiendo, una solución común es MQTT. Los clientes envían periódicamente datos al agente (es decir, Mosquitto que se ejecuta en el servidor de alojamiento), que a su vez actualiza la aplicación web principal que se ejecuta en el mismo servidor.
Pregunta
¿El enfoque MQTT es adecuado para un "gran" número de dispositivos (más de 1000) la mayoría de ellos detrás de un enrutador 4G?