Проблема
Я разрабатываю устройство IOT, которое будет подключаться к обычному маршрутизатору Wi-Fi. Как вы знаете, для того, чтобы сделать это устройство общедоступным из WAN, вам необходимо выполнить переадресацию портов или DMZ в маршрутизаторе. Но в этом случае я не хочу трогать роутер. Поэтому мне нужно найти способ сохранить доступ к этому устройству из глобальной сети.
Мое решение
При загрузке я заставляю устройство вызывать http-сервер, на котором запущен node.js + socket.io, я могу поддерживать TCP-соединение и использовать свой сервер в качестве шлюза от WAN к устройству:
Может быть это единственное решение? Можно ли добиться этого самым умным / простым способом, не прикасаясь к роутеру?
Я рекомендую посмотреть на MQTT. Он делает именно то, что вам нужно, и быстро становится стандартом де-факто для реализации стиля IoT. Теперь он также является стандартом OASIS
.