February 2024 Maintenance Release
What's Changed
- Combination of 1+2+3+4+5+6 + websocket reload fix by @mathieucarbou in #183
- Fix auth by @mathieucarbou in #187
- Many changes regarding Json support and memory improvement by @mathieucarbou in #195
Brief Note by @mathieucarbou
-
Changed card and stat names to
const char*
to improve memory usage. This makes them immutable and require to use constants but avoids a memory copy on heap of all the string values -
Help mitigate concurrency issue with
isAsyncAccessInProgress()
to avoid updating cards while the layout is being generated from the async_http task -
Support both
ESPAsyncWebServer
Ws buffer API andyubox-node-org/ESPAsyncWebServer
buffer API (which as a better api for sending websocket buffers and dealing with concurrency) -
Supports WebSocket batching to avoid crash with the initial layout sending. Batch sizes can be controlled with
DASH_JSON_SIZE
andDASH_JSON_DOCUMENT_ALLOCATION
(Arduino Json 6) -
refreshLayout() refactoring in order to avoid too many layout refresh requests when updating components dynamically: let the caller trigger a layout refresh once.
-
Removed refreshStatistics() because it it not refreshing the stats only but all the updated cards also
-
Removed update calls when adding / removing cards and stats in order to avoid trigger a sequence of full layout updates: this is u to the user to call refreshLayout() when he has finished
-
DASH_MAX_WS_CLIENTS
allows to configure the max WS clients: the default value being set by theESPAsyncWebServer
lib. I recommend setting this value to 1 or 2.
Full Changelog: v4.0.3...v4.0.4