Сценарий
IoT-устройства (в настоящее время устройство IPv4), которое отправляет через сокет TCP полезную нагрузку на сервер один раз в день. Сервер имеет публичный IP-адрес, устройство находится за маршрутизатором / NAT. Я собираюсь использовать модуль на основе ESP8266 (то есть Olimex один)
Цель сервер должен иметь возможность передавать данные любого клиента , когда это необходимо. Меня не интересует прямое общение клиента с клиентом (т. Е. Подключение к устройству с моего смартфона), как предполагается для дырокола.
Другие требования
Количество устройств IoT может возрасти до нескольких тысяч. Их интернет-соединение обеспечивается многими маршрутизаторами / модемами с поддержкой 4G. Каждый из них будет обслуживать 10-20 клиентов.
Предлагаемое решение
Насколько я понимаю, общим решением является MQTT. Клиенты периодически отправляют данные брокеру (то есть Mosquitto, работающему на хост-сервере), который, в свою очередь, обновляет основное веб-приложение, работающее на том же сервере.
Вопрос
Подходит ли подход MQTT для «большого» количества устройств (более 1000), большинство из которых находятся за маршрутизатором 4G?