Scenario
dispositivo IoT (attualmente dispositivo IPv4) che invia tramite socket TCP un payload a un server una volta al giorno. Il server ha un indirizzo IP pubblico, il dispositivo si trova dietro un router / NAT. Userò un modulo basato su ESP8266 (ovvero uno Olimex)
Obiettivo
Il server dovrebbe essere in grado di inviare dati a qualsiasi client ogni volta che è necessario. Non mi interessa la comunicazione diretta client-client (ovvero connettersi a un dispositivo dal mio smartphone) come dovrebbe fare la perforazione.
Altri requisiti
I dispositivi IoT potrebbero crescere fino a diverse migliaia. La loro connessione Internet è fornita da molti router / modem abilitati per 4G. Ognuno gestirà 10-20 clienti.
Soluzione proposta
Per quanto ho capito, una soluzione comune è MQTT. I client inviano periodicamente dati al broker (ovvero Mosquitto in esecuzione sul server di hosting), che a sua volta aggiorna l'app Web principale che viene eseguita sullo stesso server.
Domanda
L'approccio MQTT è adatto a un numero "elevato" di dispositivi (oltre 1000), la maggior parte dei quali dietro un router 4G?