When running on an ESP32 and choosing ESPALEXA_ASYNC, this PR changes the UDP implementation to async as well as TCP/web server. This change solves a memory fragmentation issue for ESP32 devices that results in WiFiUdp's parsePacket getting memory allocation errors causing CPU restarts. The async model also fixes the "flush" problem reported in PR#181 dropping packets since the async model delivers all packets it receives even on busy networks.
When running on an ESP32 and choosing ESPALEXA_ASYNC, this PR changes the UDP implementation to async as well as TCP/web server. This change solves a memory fragmentation issue for ESP32 devices that results in WiFiUdp's parsePacket getting memory allocation errors causing CPU restarts. The async model also fixes the "flush" problem reported in PR#181 dropping packets since the async model delivers all packets it receives even on busy networks.