• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

esp8622+stm32 TCP сервер

pvvx

Активный участник сообщества
Как новичку не совсем понятен механизм. В моем понимании браузер должен сделать GET запрос на сервер и этот запрос должен быть перенаправлен на usart.
Браузер открывает сразу 4-ре HTTP соединения на один ip-порт для ускорения. И в зависимости от поддержки в HTTP "keep alive" может передавать GET и прочие запросы последовательно в одном TCP соединении. Так же от опций (согласования и ответов) в первых HTTP запросах и ответах и условий поддержки "keep alive" браузер может закрыть 3 из 4 открытых соединения, но оставить одно на всё время открытой страницы. -> Это примерно так - пять открытых страниц = 5 удерживаемых постоянно соединений для контроля у браузера.
А если открывается 5 страниц одновременно, то это 20 открытых TCP соединений на время получения данных браузером.
Как это будет обрабатываться в вашем "AT"?
 

pvvx

Активный участник сообщества
Так же у браузеров есть ещё много фич. К примеру, если номер порта не 80, то для HTTP открывается всего одно соединение. И это не панацея для избавления ошибок - зависит от множества факторов даже местной сети и ответов роутеров... Это иногда может помочь, если вы используете недоHTTPсервер на любом ESP, т.к. у всех ESP количество одновременно открытых соединений ограничено. Типично до 4-х. На большее количество у ESP просто нет объемов памяти и не выделено ресурсов в LwIP.

И не забываем, что HTTP запрос может состоять из множества пакетов и иметь полный размер более нескольких килобайт. Т.е. вам необходимо иметь возможность проанализировать непрерывный заголовок в десятки килобайт.
 

pvvx

Активный участник сообщества
По всем этим и многим другим причинам - забудьте о "AT" и ESP при работе с браузером. На "AT" ESP не сделать нормальный HTTP сервер.
Будет правильно работать только соединение двух "AT".
 

pvvx

Активный участник сообщества
Любые ссылки на Васю из детсада с якобы работающим HTTP сервером на ESP и других малых MCU, не имеющих MMU c виртуализацией RAM и объемами памяти в гигабайты – это всего примеры для начального освоения работы HTTP. Любой тест HTTP сервера покажет на них толпы ошибок, что говорит о том, что это не всегда и не во всех случаях будет работать. Многие большие сервера построенные на больших машинах ещё имеют ошибки в HTTP. А на исправление и обкатку их ПО ушло более десятков лет и миллионов человеко-часов...
Код браузеров так и обновляется практически каждый день - всё не могут исправить и дополняют новыми фичами (и ошибками :))...
 

reg33

New member
Так же у браузеров есть ещё много фич. К примеру, если номер порта не 80, то для HTTP открывается всего одно соединение. И это не панацея для избавления ошибок - зависит от множества факторов даже местной сети и ответов роутеров... Это иногда может помочь, если вы используете недоHTTPсервер на любом ESP, т.к. у всех ESP количество одновременно открытых соединений ограничено. Типично до 4-х. На большее количество у ESP просто нет объемов памяти и не выделено ресурсов в LwIP.

И не забываем, что HTTP запрос может состоять из множества пакетов и иметь полный размер более нескольких килобайт. Т.е. вам необходимо иметь возможность проанализировать непрерывный заголовок в десятки килобайт.
и
Ну я склоняюсь использовать недоHTTPсервер. Просто отдавая информацию по запросу браузера (обработка нажатия кнопок, отправка клиенту данных типа температура, время и.т.п). ESP32 будет парсить запрос а stm общаться по usart. Всю периферийную часть возьмет на себя stm. Вопрос в том что у меня нет ни одного своего проекта на ESP щас юзаю готовую прошивку под AT команды(ESP это черный ящик).
 

pvvx

Активный участник сообщества
Ну я склоняюсь использовать недоHTTPсервер. Просто отдавая информацию по запросу браузера (обработка нажатия кнопок, отправка клиенту данных типа температура, время и.т.п). ESP32 будет парсить запрос а stm общаться по usart. Всю периферийную часть возьмет на себя stm. Вопрос в том что у меня нет ни одного своего проекта на ESP щас юзаю готовую прошивку под AT команды(ESP это черный ящик).
Тогда какие могут быть вопросы? Не работает с "AT" - значит не работает. Выдумывайте другие варианты обходов недоHTTPсервера. К примеру обращайтесь к ESP в специально описанном запросе в js и следите чтобы никто и вы не открывали вторую страницу в эксплорере...
 
Сверху Снизу