Discord Server: https://discord.gg/X7zpGdyUcY
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 library can be downloaded from the releases page at https://github.com/ESP32Async/AsyncTCP/releases.
It is also deployed in these registries:
-
Arduino Library Registry: https://github.com/arduino/library-registry
-
ESP Component Registry https://components.espressif.com/components/esp32async/asynctcp/
-
PlatformIO Registry: https://registry.platformio.org/libraries/esp32async/AsyncTCP
- Use:
lib_deps=ESP32Async/AsyncTCP
to point to latest version - Use:
lib_deps=ESP32Async/AsyncTCP @ ^<x.y.z>
to point to latest version with the same major version - Use:
lib_deps=ESP32Async/AsyncTCP @ <x.y.z>
to always point to the same version (reproductible build)
- Use:
The base classes on which everything else is built. They expose all possible scenarios, but are really raw and require more skills to use.
Most of the crashes are caused by improper configuration of the library for the project. Here are some recommendations to avoid them.
I personally use the following configuration in my projects:
-D CONFIG_ASYNC_TCP_MAX_ACK_TIME=5000 // (keep default)
-D CONFIG_ASYNC_TCP_PRIORITY=10 // (keep default)
-D CONFIG_ASYNC_TCP_QUEUE_SIZE=64 // (keep default)
-D CONFIG_ASYNC_TCP_RUNNING_CORE=1 // force async_tcp task to be on same core as the app (default is core 0)
-D CONFIG_ASYNC_TCP_STACK_SIZE=4096 // reduce the stack size (default is 16K)
- ESP32
- Arduino Core 2.x and 3.x