add limit to how many messages can be queued for each web socket client

This commit is contained in:
me-no-dev
2018-08-18 21:10:39 +02:00
parent 4c621f340c
commit bed4146ec6
2 changed files with 8 additions and 1 deletions

View File

@@ -551,7 +551,12 @@ void AsyncWebSocketClient::_queueMessage(AsyncWebSocketMessage *dataMessage){
delete dataMessage; delete dataMessage;
return; 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()) if(_client->canSend())
_runQueue(); _runQueue();
} }

View File

@@ -24,8 +24,10 @@
#include <Arduino.h> #include <Arduino.h>
#ifdef ESP32 #ifdef ESP32
#include <AsyncTCP.h> #include <AsyncTCP.h>
#define WS_MAX_QUEUED_MESSAGES 32
#else #else
#include <ESPAsyncTCP.h> #include <ESPAsyncTCP.h>
#define WS_MAX_QUEUED_MESSAGES 8
#endif #endif
#include <ESPAsyncWebServer.h> #include <ESPAsyncWebServer.h>