fix HTTP chunked transfer encoding, since WebServer class doesnt support it. this fixes the 2 second delay in some browsers. (we where out of spec.)

This commit is contained in:
Edwin Eefting
2017-07-14 01:42:50 +02:00
parent 1bbbaa18f7
commit f9ce235b32
2 changed files with 23 additions and 5 deletions
+10 -5
View File
@@ -174,9 +174,9 @@ void sendWebPageChunkedBegin(String& log)
{
statusLED(true);
WebServer.setContentLength(CONTENT_LENGTH_UNKNOWN);
WebServer.sendHeader("Content-Type","text/html",true);
// WebServer.sendHeader("Content-Type","text/html",true);
WebServer.sendHeader("Cache-Control","no-cache");
WebServer.sendHeader("Connection","close");
WebServer.sendHeader("Transfer-Encoding","chunked");
WebServer.send(200);
}
@@ -189,7 +189,14 @@ void sendWebPageChunkedData(String& log, String& data)
log += F(" [");
log += data.length();
log += F("]");
String size;
size=String(data.length(), HEX)+"\r\n";
//do chunked transfer encoding ourselfs (WebServer doesnt support it)
WebServer.sendContent(size);
WebServer.sendContent(data);
WebServer.sendContent("\r\n");
data = F(""); //free RAM
}
}
@@ -197,9 +204,7 @@ void sendWebPageChunkedData(String& log, String& data)
void sendWebPageChunkedEnd(String& log)
{
log += F(" [0]");
WebServer.sendContent("");
WebServer.client().flush();
WebServer.client().stop(); // Stop is needed because we sent no content length
WebServer.sendContent("0\r\n\r\n");
}
+13
View File
@@ -4,6 +4,7 @@ import time
import subprocess
import wificonfig
import requests
import serial.tools.miniterm
def log(txt):
@@ -92,6 +93,11 @@ class Esp():
def serial(self):
"""open serial terminal to esp"""
subprocess.check_call("platformio serialports monitor --baud 115200 --port {port} --echo".format(**self._config), shell=True, cwd='..')
# print("JA")
# term=serial.tools.miniterm.Miniterm(self._serial)
# term.start()
# term.join()
# print("kk")
def erase(self):
@@ -99,6 +105,13 @@ class Esp():
subprocess.check_call("esptool.py --port {port} -b 1500000 erase_flash".format(**self._config), shell=True, cwd='..')
def bfs(self):
"""build + flashserial + serial, all in one"""
self.build()
self.flashserial()
self.serial()
def config_device(self):
r=requests.post(