fix(server): remplace ChunkedWriter artisanal par streaming sendContent#7
Open
tsabran wants to merge 1 commit intoF1ATB:mainfrom
Open
fix(server): remplace ChunkedWriter artisanal par streaming sendContent#7tsabran wants to merge 1 commit intoF1ATB:mainfrom
tsabran wants to merge 1 commit intoF1ATB:mainfrom
Conversation
L'endpoint /ajax_histo1an retournait un 502 intermittent en production.
Cause : l'ancienne implementation de envoyerHistoriqueEnergie() construisait
un JsonDocument complet en RAM, puis le serialisait via une classe ChunkedWriter
custom qui ecrivait le framing HTTP chunked directement sur le socket TCP brut,
en parallele de ce que WebServer gere deja. Cette interaction produisait des
reponses mal formees ou tronquees.
Correction : remplacement par streaming natif WebServer.
- setContentLength(CONTENT_LENGTH_UNKNOWN) + send() ouvre la reponse
- chaque ligne CSV est emise immediatement via sendContent() au fil de la lecture
- le framing chunked et la cloture TCP sont delegues a WebServer/lwIP
- la classe ChunkedWriter est supprimee
Le contrat de donnees frontend (JSON { EnergieJour: [...] }) est inchange.
Aucune modification dans JS_Accueil.h.
Fichiers :
- Server.ino : reecriture envoyerHistoriqueEnergie(), suppression ChunkedWriter
- docs/fix_ajax_histo1an_streaming.md : documentation du fix pour les reviewers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note : correctif, documentation et description entierement générés par IA.
Je n’ai fait que décrire le problème et tester le résultat sur mon installation ESP32, qui semble corriger le problème chez moi.
Une explication plus détaillée de l'analyse et du changement est visualisable dans le fichier docs/fix_ajax_histo1an_streaming.md.
L'endpoint /ajax_histo1an retournait un 502 intermittent en production.
Cause : l'ancienne implementation de envoyerHistoriqueEnergie() construisait un JsonDocument complet en RAM, puis le serialisait via une classe ChunkedWriter custom qui ecrivait le framing HTTP chunked directement sur le socket TCP brut, en parallele de ce que WebServer gere deja. Cette interaction produisait des reponses mal formees ou tronquees.
Correction : remplacement par streaming natif WebServer.
Le contrat de donnees frontend (JSON { EnergieJour: [...] }) est inchange. Aucune modification dans JS_Accueil.h.
Fichiers :