From 8a7d2d1944a72c107e7eef541e344b53cafb4cac Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Mon, 9 Dec 2024 09:18:13 +0100 Subject: [PATCH] add slow chunk example --- examples/SimpleServer/SimpleServer.ino | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/examples/SimpleServer/SimpleServer.ino b/examples/SimpleServer/SimpleServer.ino index 8d34765..05756f8 100644 --- a/examples/SimpleServer/SimpleServer.ino +++ b/examples/SimpleServer/SimpleServer.ino @@ -503,6 +503,27 @@ void setup() { request->send(response); }); + // time curl -N -v -X GET http://192.168.4.1/slow.html --output - + server.on("/slow.html", HTTP_GET, [](AsyncWebServerRequest* request) { + request->client()->setRxTimeout(2000); + AsyncWebServerResponse* response = request->beginChunkedResponse("text/html", [](uint8_t* buffer, size_t maxLen, size_t index) -> size_t { + Serial.printf("%u\n", index); + // finished ? + if (index >= 160000) + return 0; + + // slow down the task by 2 seconds + // to simulate some heavy processing, like SD card reading + delay(100); + + memset(buffer, characters[charactersIndex], 256); + charactersIndex = (charactersIndex + 1) % sizeof(characters); + return 256; + }); + + request->send(response); + }); + /* ❯ curl -I -X HEAD http://192.168.4.1/download HTTP/1.1 200 OK