From bed4146ec647fd1cdfd1d2485724369c92cab8e6 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Sat, 18 Aug 2018 21:10:39 +0200 Subject: [PATCH] add limit to how many messages can be queued for each web socket client --- src/AsyncWebSocket.cpp | 7 ++++++- src/AsyncWebSocket.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) 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