A fork of the AsyncTCP library by @me-no-dev.
This is a fully asynchronous TCP library, aimed at enabling trouble-free, multi-connection network environment for Espressif's ESP32 MCUs.
This library is the base for ESPAsyncWebServer
The base classes on which everything else is built. They expose all possible scenarios, but are really raw and require more skills to use.
Based on ESPHome fork
library.properties
for Arduino IDE users
Add CONFIG_ASYNC_TCP_MAX_ACK_TIME
Add CONFIG_ASYNC_TCP_PRIORITY
Add CONFIG_ASYNC_TCP_QUEUE_SIZE
Add setKeepAlive()
Arduino 3 / ESP-IDF 5 compatibility
Better CI
Better example
Customizable macros
Fix for "Required to lock TCPIP core functionality". Ref: https://github.com/mathieucarbou/AsyncTCP/issues/27 and https://github.com/espressif/arduino-esp32/issues/10526
Fix for "ack timeout 4" client disconnects.
Fix from https://github.com/me-no-dev/AsyncTCP/pull/173 (partially applied)
IPv6
LIBRETINY support
LibreTuya
Reduce logging of non critical messages
Use IPADDR6_INIT() macro to set connecting IPv6 address
xTaskCreateUniversal function
mathieucarbou/AsyncTCP @ ^3.2.14
Most of the crashes are caused by improper configuration of the library for the project. Here are some recommendations to avoid them.
-D CONFIG_ASYNC_TCP_RUNNING_CORE=1
-D CONFIG_ASYNC_TCP_STACK_SIZE=16384
.
The default value of 16384
might be too much for your project.
You can look at the MycilaTaskMonitor project to monitor the stack usage.-D CONFIG_ASYNC_TCP_PRIORITY=10
.
Default is 10
.-D CONFIG_ASYNC_TCP_QUEUE_SIZE=128
.
Default is 64
.-D CONFIG_ASYNC_TCP_MAX_ACK_TIME=3000
.
Default is 5000
.I personally use the following configuration in my projects:
-D CONFIG_ASYNC_TCP_MAX_ACK_TIME=3000
-D CONFIG_ASYNC_TCP_PRIORITY=10
-D CONFIG_ASYNC_TCP_QUEUE_SIZE=128
-D CONFIG_ASYNC_TCP_RUNNING_CORE=1
-D CONFIG_ASYNC_TCP_STACK_SIZE=4096