Allows to check queue status (#411)
This commit is contained in:
parent
5ef7ffcd41
commit
736a54af1a
|
@ -544,6 +544,11 @@ void AsyncWebSocketClient::_runQueue(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AsyncWebSocketClient::queueIsFull(){
|
||||||
|
if((_messageQueue.length() >= WS_MAX_QUEUED_MESSAGES) || (_status != WS_CONNECTED) ) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void AsyncWebSocketClient::_queueMessage(AsyncWebSocketMessage *dataMessage){
|
void AsyncWebSocketClient::_queueMessage(AsyncWebSocketMessage *dataMessage){
|
||||||
if(dataMessage == NULL)
|
if(dataMessage == NULL)
|
||||||
return;
|
return;
|
||||||
|
@ -876,6 +881,20 @@ void AsyncWebSocket::_handleDisconnect(AsyncWebSocketClient * client){
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AsyncWebSocket::availableForWriteAll(){
|
||||||
|
for(const auto& c: _clients){
|
||||||
|
if(c->queueIsFull()) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AsyncWebSocket::availableForWrite(uint32_t id){
|
||||||
|
for(const auto& c: _clients){
|
||||||
|
if(c->queueIsFull() && (c->id() == id )) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
size_t AsyncWebSocket::count() const {
|
size_t AsyncWebSocket::count() const {
|
||||||
return _clients.count_if([](AsyncWebSocketClient * c){
|
return _clients.count_if([](AsyncWebSocketClient * c){
|
||||||
return c->status() == WS_CONNECTED;
|
return c->status() == WS_CONNECTED;
|
||||||
|
|
|
@ -189,6 +189,7 @@ class AsyncWebSocketClient {
|
||||||
|
|
||||||
//data packets
|
//data packets
|
||||||
void message(AsyncWebSocketMessage *message){ _queueMessage(message); }
|
void message(AsyncWebSocketMessage *message){ _queueMessage(message); }
|
||||||
|
bool queueIsFull();
|
||||||
|
|
||||||
size_t printf(const char *format, ...) __attribute__ ((format (printf, 2, 3)));
|
size_t printf(const char *format, ...) __attribute__ ((format (printf, 2, 3)));
|
||||||
#ifndef ESP32
|
#ifndef ESP32
|
||||||
|
@ -237,6 +238,8 @@ class AsyncWebSocket: public AsyncWebHandler {
|
||||||
const char * url() const { return _url.c_str(); }
|
const char * url() const { return _url.c_str(); }
|
||||||
void enable(bool e){ _enabled = e; }
|
void enable(bool e){ _enabled = e; }
|
||||||
bool enabled() const { return _enabled; }
|
bool enabled() const { return _enabled; }
|
||||||
|
bool availableForWriteAll();
|
||||||
|
bool availableForWrite(uint32_t id);
|
||||||
|
|
||||||
size_t count() const;
|
size_t count() const;
|
||||||
AsyncWebSocketClient * client(uint32_t id);
|
AsyncWebSocketClient * client(uint32_t id);
|
||||||
|
|
Loading…
Reference in New Issue