Scénario
Périphérique IoT (actuellement le périphérique IPv4) qui envoie via le socket TCP une charge utile à un serveur une fois par jour. Le serveur a une adresse IP publique, l'appareil est derrière un routeur / NAT. Je vais utiliser un module basé sur ESP8266 (ie Olimex one)
Objectif
Le serveur doit pouvoir envoyer des données à n'importe quel client chaque fois qu'il en a besoin. Je ne suis pas intéressé par la communication directe de client à client (c'est-à-dire que je me connecte à un appareil depuis mon smartphone) comme la perforation est censée le faire.
Autres exigences
Les appareils IoT peuvent atteindre plusieurs milliers. Leur connexion Internet est fournie par de nombreux routeurs / modems compatibles 4G. Chacun traitera 10 à 20 clients.
Solution proposée
Pour autant que je sache, une solution courante est MQTT. Les clients envoient périodiquement des données au courtier (c'est-à-dire Mosquitto exécuté sur le serveur d'hébergement), qui à son tour met à jour l'application Web principale qui s'exécute sur le même serveur.
Question
L'approche MQTT convient-elle à un "grand" nombre d'appareils (1000+), la plupart derrière un routeur 4G?