Можно ли отправлять данные с интернет-сервера на ESP8266 через прокси-сервер или требуются регулярные запросы от ESP8266?
Возможно, это будет своего рода push-уведомление или что-то в этом роде. Я могу сначала подключиться к серверу и отправить ему любые данные для "регистрации"...
Я нашел много примеров с веб-сокетами, но все они касались ESP8266, похожего на «сервер». Это не тот случай...
@mirec, 👍0
Обсуждение1 ответ
Лучший ответ:
Кажется очевидным, что вы не хотите, чтобы ваш ESP8266 работал как сервер. Это понятно, учитывая, что серверные программы потребляют изрядное количество системных ресурсов (ЦП, ОЗУ и т. д.), которых не хватает. Это означает, что вам придется использовать ESP8266 в качестве клиента, а это означает, что либо
Опрос – многократное подключение ESP8266 к вашему "интернет-серверу" явно запрашивать информацию через частые промежутки времени. Ваш интернет-сервер должен иметь возможность собирать информацию партиями и хранить ее до тех пор, пока ваш ESP8266 снова не подключится для запроса информации.
Сокетные соединения — когда ваш ESP8266 поддерживает постоянное сокетное соединение с вашим "интернет-сервер" Обратите внимание, что протокол HTTP основан на сокетных соединениях, но клиенты открывают сокетное соединение, запрашивают веб-страницу и ее изображения, CSS и т. д., а затем отключают сокет. Вы также можете использовать сокеты на более базовом уровне в качестве потока байтов. Это программирование может быть сложным, но в ESP8266 есть примеры связи через сокет TCP, такие как WiFiClient и клиент Ethernet.
Подходы к работе с клиентами имеют множество проблем:
- сервер должен удерживать информацию, пока клиент не вернется, чтобы получить ее
- вы должны разработать какую-то структуру данных, чтобы отслеживать, какая информация была обработана, а какая работа еще должна быть выполнена
- проблемы с задержкой, т. е. что происходит, когда возникает задержка в обработке информации.
У серверных подходов также есть проблемы:
- серверные программы может быть сложно написать так, чтобы они продолжали работать. одно исключение или фатальная ошибка могут привести к сбою программы
- серверные программы уязвимы для DDoS-атак или других атак и могут легко вывести из строя небольшое устройство, такое как ESP8266
- проблемы с брандмауэром и сетью — в зависимости от того, как это устройство подключается к Интернету, оно может иметь или не иметь постоянный IP-адрес, по которому его можно найти, поставщик услуг Интернета, который подключается к нему, может не разрешать входящие подключения для портов, на которых оно установлено. слушает и т. д.
- Драйверы для чипа последовательного порта CH9102X
- ESP32: отключить детектор отключения питания
- Преобразование строки в IP-адрес
- Какую плату выбрать в PlatformIO для ESP Wroom 32?
- esp32 Stack canary watchpoint срабатывает
- Постоянная частота дискретизации АЦП на ESP8266 или ESP32
- ESP32S v1.1 NodeMCU vs ESP32 DevKitV1
- esp32-cam публикует изображение в mqtt
https://en.wikipedia.org/wiki/Веб-сокет, @Majenko
Я нашел много примеров с веб-сокетами, но все они были о том, что ESP8266 там как «сервер». Это не тот случай..., @mirec
Так что ищите другие примеры, где ESP8266 является клиентом? Они должны быть где-то там., @Majenko
вы изучали использование MQTT?, @jsotola