• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Ответы браузера на запросы Get Post

Anatjliy

New member
Добрый день ,
Есть esp12 (lolin node mcu v3)

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
WiFiServer server(80);
WiFiClient client;
const char* ssid = "Board";


void Wp1Out() {
String s = "HTTP/2.0 200 OK\r\n Content-Type: text/html\r\n Pragma: no-cache\r\nConnection: close\r\n\r\n";
s +="<html><header><title>board F2 F3</title></header>";
s +="<body bgcolor=teal text=red><pre><b>";//33cc66
s +="<h2>AVIA BOARD F</h2>";
s +="<form action=\"\"method= get>";
s +="<p>"
" <INPUT type=\"submit\" name=\"t1\" value=\"B\" style=\"background-color:red;\"/>"
" <INPUT type=\"submit\" name=\"t2\" value=\"B\" style=\"background-color:yellow;\"/> "
" <INPUT type=\"submit\" name=\"t3\" value=\"B\" style=\"background-color:lime;\"/> "
" <INPUT type=\"submit\" name=\"t4\" value=\"BLINC\" style=\"background-color:;\"/>"
" <INPUT type=\"submit\" name=\"t5\" value=\"BEEP\"/>"//вывод звука Beep 2 cek
"</p>";
s +="</form>";
s +="</b></pre>";
s += "</body></html>\n\r\n\r";
// отправить клиенту
client.print(s);
}

void setup() {
Serial.begin(115200);
delay(1);
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid);
//WiFi.begin(ssid);
delay(1);
server.begin();
}

void loop() {
// WiFiClient client = server.available();
client = server.available();
if (!client) {
return;
}

while(!client.available()){
// delay(1);
}
//String req1 = client.readStringUntil('\r');
String req = client.readString();
Serial.println(req);
Wp1Out();
delay(10);
client.flush();
}

При подключении с смартфона , штатным браузером , всё нормально , при подключении и вызове и нажатии любой кнопки из crom или подобными ему браузерами приходит двойной ответ от клиента в ESP : 1 ответ post с данными о нажатой кнопки и срезу за ним запрос get /favicon .........
ЧТО МОЖЕТ БЫТЬ ?
 

Юрий Ботов

Moderator
Команда форума
БОЛЬШИНСТВО современных браузеров по умолчанию делают запрос favicon.ico чтобы разместить эту картинку в "командной строке перед адресом сайта". Вариантов два: послать таки браузеру эту картинку, чтобы отстал или игнрировать запрос favicon (послать браузеру ответ что такой картинки нет)
 

Anatjliy

New member
НО как то не интересно , и трафик подгружается ,(на данном этапе это заготовка , после будет определения что делать при приходе ответов ), хотелось бы построить быстрое общение между esp и клиентом , Так же замечена "вялая " реакция при подсоединении и работе от ноутбука с Win и удовлетворяющая реакция от смартфонов и планшетов
При использовании в качестве платформы на esp 01 с прошивкой AT и nano таких заморочек и тормозов не было , и ответы (esp-nano) приходили в более читабельном виде (правда nano работало под ассемблером)
 

Юрий Ботов

Moderator
Команда форума
говорю же простым языком: тормоза из-за того что браузер шлет запрос и не получает на него ответа, и ждет таймаут. Дайте браузеру ответ, хотябы "404" и все станет гораздо быстрее
 

pvvx

Активный участник сообщества
НО как то не интересно , и трафик подгружается ,(на данном этапе это заготовка , после будет определения что делать при приходе ответов ), хотелось бы построить быстрое общение между esp и клиентом , Так же замечена "вялая " реакция при подсоединении и работе от ноутбука с Win и удовлетворяющая реакция от смартфонов и планшетов
При использовании в качестве платформы на esp 01 с прошивкой AT и nano таких заморочек и тормозов не было , и ответы (esp-nano) приходили в более читабельном виде (правда nano работало под ассемблером)
В "скетче" же не полноценный HTTP сервер, а жалкое подобие. Что вы от него хотите, если современный браузер открывает HTTP сервер сразу с несколькими запросами-потоками, а у вас описан всего один однозадачный сокет TCP и нет поддержки HTTP сервиса хотя-бы по минимальным стандартам...
 
Сверху Снизу