Чтобы избежать необходимости находиться в сети, которая допускает входящий трафик, вам необходимо подключиться к серверу, который будет ретранслировать запросы от клиентов, которые также подключаются к нему.
По сути, это похоже на модель спутника связи. И компьютер пользователя, или телефон, или что-то еще, а также устройство IoT поддерживают связь «вверх» с этим сервером в облаке, и оно принимает каждое сообщение, которое появляется на одной стороне, и отправляет его на другой, и наоборот.
Существует много возможных способов реализации такого сервера. В настоящее время модно сделать его брокером MQTT . В MQTT клиенты (как устройства IoT, так и пользовательские устройства) устанавливают исходящие соединения с посредником, а сообщения о нарушенных общих ресурсах, которые «публикуются» по «теме» одним клиентом для всех клиентов, которые «подписались» на эту «тему» тема
Поскольку соединение уже установлено, брокер может отправлять незапрошенный трафик по нему без задержки интервала опроса
Чтобы поддерживать установленные соединения, иногда отправляется поддерживающий трафик
Если соединение разрывается, существуют правила для его восстановления
По сути, заметная задержка возникает только в том случае, если посредник пытается передать сообщение вниз, и соединение оказывается разорванным и еще не восстановленным, и в этом случае сообщение будет отложено до повторного подключения. (Существуют варианты хранения сообщений, их удаления и т. Д.).