• Система автоматизации с открытым исходным кодом на базе 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 и следите чтобы никто и вы не открывали вторую страницу в эксплорере...
 

rst

Member
Любые ссылки на Васю из детсада с якобы работающим HTTP сервером на ESP и других малых MCU, не имеющих MMU c виртуализацией RAM и объемами памяти в гигабайты – это всего примеры для начального освоения работы HTTP. Любой тест HTTP сервера покажет на них толпы ошибок, что говорит о том, что это не всегда и не во всех случаях будет работать.
Бред. Если этого не умеете вы, это не значит что это невозможно. Это всего лишь значит что этого не умеете вы. Не более.
HTTP прост (для того кто умеет читать и думать).
 
Сверху Снизу