diff --git a/src/AsyncWebSocket.cpp b/src/AsyncWebSocket.cpp index 1419ee1..f507aa7 100644 --- a/src/AsyncWebSocket.cpp +++ b/src/AsyncWebSocket.cpp @@ -551,7 +551,12 @@ void AsyncWebSocketClient::_queueMessage(AsyncWebSocketMessage *dataMessage){ delete dataMessage; return; } - _messageQueue.add(dataMessage); + if(_messageQueue.length() > WS_MAX_QUEUED_MESSAGES){ + ets_printf("ERROR: Too many messages queued\n"); + delete dataMessage; + } else { + _messageQueue.add(dataMessage); + } if(_client->canSend()) _runQueue(); } diff --git a/src/AsyncWebSocket.h b/src/AsyncWebSocket.h index 37c8d11..06b942a 100644 --- a/src/AsyncWebSocket.h +++ b/src/AsyncWebSocket.h @@ -24,8 +24,10 @@ #include #ifdef ESP32 #include +#define WS_MAX_QUEUED_MESSAGES 32 #else #include +#define WS_MAX_QUEUED_MESSAGES 8 #endif #include