Можно ли отправлять данные с интернет-сервера на ESP8266 через прокси-сервер или требуются регулярные запросы от ESP8266?

Возможно, это будет своего рода push-уведомление или что-то в этом роде. Я могу сначала подключиться к серверу и отправить ему любые данные для "регистрации"...

Я нашел много примеров с веб-сокетами, но все они касались ESP8266, похожего на «сервер». Это не тот случай...

, 👍0

Обсуждение

https://en.wikipedia.org/wiki/Веб-сокет, @Majenko

Я нашел много примеров с веб-сокетами, но все они были о том, что ESP8266 там как «сервер». Это не тот случай..., @mirec

Так что ищите другие примеры, где ESP8266 является клиентом? Они должны быть где-то там., @Majenko

вы изучали использование MQTT?, @jsotola


1 ответ


Лучший ответ:

1

Кажется очевидным, что вы не хотите, чтобы ваш ESP8266 работал как сервер. Это понятно, учитывая, что серверные программы потребляют изрядное количество системных ресурсов (ЦП, ОЗУ и т. д.), которых не хватает. Это означает, что вам придется использовать ESP8266 в качестве клиента, а это означает, что либо

  1. Опрос – многократное подключение ESP8266 к вашему "интернет-серверу" явно запрашивать информацию через частые промежутки времени. Ваш интернет-сервер должен иметь возможность собирать информацию партиями и хранить ее до тех пор, пока ваш ESP8266 снова не подключится для запроса информации.

  2. Сокетные соединения — когда ваш ESP8266 поддерживает постоянное сокетное соединение с вашим "интернет-сервер" Обратите внимание, что протокол HTTP основан на сокетных соединениях, но клиенты открывают сокетное соединение, запрашивают веб-страницу и ее изображения, CSS и т. д., а затем отключают сокет. Вы также можете использовать сокеты на более базовом уровне в качестве потока байтов. Это программирование может быть сложным, но в ESP8266 есть примеры связи через сокет TCP, такие как WiFiClient и клиент Ethernet.

Подходы к работе с клиентами имеют множество проблем:

  • сервер должен удерживать информацию, пока клиент не вернется, чтобы получить ее
  • вы должны разработать какую-то структуру данных, чтобы отслеживать, какая информация была обработана, а какая работа еще должна быть выполнена
  • проблемы с задержкой, т. е. что происходит, когда возникает задержка в обработке информации.

У серверных подходов также есть проблемы:

  • серверные программы может быть сложно написать так, чтобы они продолжали работать. одно исключение или фатальная ошибка могут привести к сбою программы
  • серверные программы уязвимы для DDoS-атак или других атак и могут легко вывести из строя небольшое устройство, такое как ESP8266
  • проблемы с брандмауэром и сетью — в зависимости от того, как это устройство подключается к Интернету, оно может иметь или не иметь постоянный IP-адрес, по которому его можно найти, поставщик услуг Интернета, который подключается к нему, может не разрешать входящие подключения для портов, на которых оно установлено. слушает и т. д.
,