From 4b33575af1ecfd173f14307654c4567f8665d8d0 Mon Sep 17 00:00:00 2001 From: Links Date: Thu, 10 May 2018 20:42:03 +0200 Subject: [PATCH] add connectedClients see #242 --- src/WebSocketsServer.cpp | 18 ++++++++++++++++++ src/WebSocketsServer.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/WebSocketsServer.cpp b/src/WebSocketsServer.cpp index 4a841c2..6c76af7 100644 --- a/src/WebSocketsServer.cpp +++ b/src/WebSocketsServer.cpp @@ -403,6 +403,24 @@ void WebSocketsServer::setAuthorization(const char * auth) { } } +/** + * count the connected clients (optional ping them) + * @param ping bool ping the connected clients + */ +int WebSocketsServer::connectedClients(bool ping) { + WSclient_t * client; + int count = 0; + for(uint8_t i = 0; i < WEBSOCKETS_SERVER_CLIENT_MAX; i++) { + client = &_clients[i]; + if(client->status == WSC_CONNECTED) { + if(ping != true || sendPing(i)) { + count++; + } + } + } + return count; +} + #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266_ASYNC) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32) /** * get an IP for a client diff --git a/src/WebSocketsServer.h b/src/WebSocketsServer.h index a8dcf6e..e010488 100644 --- a/src/WebSocketsServer.h +++ b/src/WebSocketsServer.h @@ -95,6 +95,8 @@ public: void setAuthorization(const char * user, const char * password); void setAuthorization(const char * auth); + int connectedClients(bool ping = false); + #if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266_ASYNC) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32) IPAddress remoteIP(uint8_t num); #endif