From 5ef7ffcd41ff07c1d1832977a012c2f5d6781bea Mon Sep 17 00:00:00 2001 From: dyarkovoy Date: Sat, 22 Jun 2019 19:47:43 +0300 Subject: [PATCH] Detect if AsyncWebSocketClient can send data to server and add AsyncWebServer::end() (#501) * added AsyncWebServer::end() * added AsyncWebServer::end() * added bool AsyncWebSocketClient::canSend() * Fix comparison with WS_MAX_QUEUED_MESSAGES * Fix comparison with WS_MAX_QUEUED_MESSAGES --- src/AsyncWebSocket.cpp | 2 +- src/AsyncWebSocket.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/AsyncWebSocket.cpp b/src/AsyncWebSocket.cpp index f507aa7..03ab68f 100644 --- a/src/AsyncWebSocket.cpp +++ b/src/AsyncWebSocket.cpp @@ -551,7 +551,7 @@ void AsyncWebSocketClient::_queueMessage(AsyncWebSocketMessage *dataMessage){ delete dataMessage; return; } - if(_messageQueue.length() > WS_MAX_QUEUED_MESSAGES){ + if(_messageQueue.length() >= WS_MAX_QUEUED_MESSAGES){ ets_printf("ERROR: Too many messages queued\n"); delete dataMessage; } else { diff --git a/src/AsyncWebSocket.h b/src/AsyncWebSocket.h index 06b942a..0a12acb 100644 --- a/src/AsyncWebSocket.h +++ b/src/AsyncWebSocket.h @@ -210,6 +210,8 @@ class AsyncWebSocketClient { void binary(const __FlashStringHelper *data, size_t len); void binary(AsyncWebSocketMessageBuffer *buffer); + bool canSend() { return _messageQueue.length() < WS_MAX_QUEUED_MESSAGES; } + //system callbacks (do not call) void _onAck(size_t len, uint32_t time); void _onError(int8_t);