diff --git a/README.md b/README.md index 672c649..2c0b85e 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ a WebSocket Server and Client for Arduino based on RFC6455. - continuation frame ##### Limitations ##### - - max input length is limited to the ram size and the ```WEBSOCKETS_MAX_DATA_SIZE``` define + - max input length is limited to the ram size and the ```WEBSOCKETS_MAX_DATA_SIZE``` define (override it with a build flag, e.g. ```-DWEBSOCKETS_MAX_DATA_SIZE=32768```) - max output length has no limit (the hardware is the limit) - Client send big frames with mask 0x00000000 (on AVR all frames) - continuation frame reassembly need to be handled in the application code diff --git a/src/WebSockets.h b/src/WebSockets.h index 8fd7521..68b6aea 100644 --- a/src/WebSockets.h +++ b/src/WebSockets.h @@ -63,7 +63,9 @@ #if defined(ESP8266) || defined(ESP32) +#ifndef WEBSOCKETS_MAX_DATA_SIZE #define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024) +#endif #define WEBSOCKETS_USE_BIG_MEM #define GET_FREE_HEAP ESP.getFreeHeap() // moves all Header strings to Flash (~300 Byte) @@ -79,7 +81,9 @@ #elif defined(STM32_DEVICE) +#ifndef WEBSOCKETS_MAX_DATA_SIZE #define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024) +#endif #define WEBSOCKETS_USE_BIG_MEM #define GET_FREE_HEAP System.freeMemory() #define WEBSOCKETS_YIELD() @@ -87,7 +91,9 @@ #elif defined(ARDUINO_ARCH_RP2040) +#ifndef WEBSOCKETS_MAX_DATA_SIZE #define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024) +#endif #define WEBSOCKETS_USE_BIG_MEM #define GET_FREE_HEAP rp2040.getFreeHeap() #define WEBSOCKETS_YIELD() yield() @@ -95,26 +101,34 @@ #elif defined(ARDUINO_UNOWIFIR4) +#ifndef WEBSOCKETS_MAX_DATA_SIZE #define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024) +#endif #define WEBSOCKETS_YIELD() yield() #define WEBSOCKETS_YIELD_MORE() delay(1) #elif defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_SAMD_NANO_33_IOT) +#ifndef WEBSOCKETS_MAX_DATA_SIZE #define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024) +#endif #define WEBSOCKETS_YIELD() yield() #define WEBSOCKETS_YIELD_MORE() delay(1) #elif defined(WIO_TERMINAL) || defined(SEEED_XIAO_M0) +#ifndef WEBSOCKETS_MAX_DATA_SIZE #define WEBSOCKETS_MAX_DATA_SIZE (15 * 1024) +#endif #define WEBSOCKETS_YIELD() yield() #define WEBSOCKETS_YIELD_MORE() delay(1) #else // atmega328p has only 2KB ram! +#ifndef WEBSOCKETS_MAX_DATA_SIZE #define WEBSOCKETS_MAX_DATA_SIZE (1024) +#endif // moves all Header strings to Flash #define WEBSOCKETS_SAVE_RAM #define WEBSOCKETS_YIELD()