diff --git a/RotaxMonitor/src/webserver.cpp b/RotaxMonitor/src/webserver.cpp index 4daf8ce..3b056c4 100644 --- a/RotaxMonitor/src/webserver.cpp +++ b/RotaxMonitor/src/webserver.cpp @@ -9,7 +9,7 @@ void on_ping(TimerHandle_t xTimer) ws->cleanupClients(); } -AstroWebServer::AstroWebServer(const uint8_t port, fs::FS &filesystem) : m_port(port), m_webserver(AsyncWebServer(port)), m_websocket(AsyncWebSocket("/ws")), m_filesystem(filesystem) +AstroWebServer::AstroWebServer(const uint8_t port, fs::FS &filesystem) : c_port(port), m_webserver(AsyncWebServer(port)), m_websocket(AsyncWebSocket("/ws")), m_filesystem(filesystem) { LOG_DEBUG("Initializing Web Server"); m_websocket.onEvent([this](AsyncWebSocket *server, AsyncWebSocketClient *client, @@ -26,7 +26,8 @@ AstroWebServer::AstroWebServer(const uint8_t port, fs::FS &filesystem) : m_port( m_webserver.begin(); m_websocket.enable(true); - m_pingTimer = xTimerCreate("wsPingTimer", pdMS_TO_TICKS(2000), pdTRUE, (void *)&m_websocket, on_ping); + m_pingTimer = xTimerCreate("wsPingTimer", pdMS_TO_TICKS(c_pingTime), pdTRUE, (void *)&m_websocket, on_ping); + xTimerStart(m_pingTimer, pdMS_TO_TICKS(10)); registerWsCommand("setTime", [this](const ArduinoJson::JsonDocument &doc) { onSetTme(doc); }); @@ -36,6 +37,7 @@ AstroWebServer::AstroWebServer(const uint8_t port, fs::FS &filesystem) : m_port( AstroWebServer::~AstroWebServer() { + xTimerStop(m_pingTimer, 0); xTimerDelete(m_pingTimer, pdMS_TO_TICKS(10)); m_webserver.removeHandler(&m_websocket); m_webserver.end(); @@ -69,13 +71,13 @@ void AstroWebServer::onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *cli switch (type) { case WS_EVT_CONNECT: - LOG_DEBUG("WS client IP[", client->remoteIP().toString().c_str(), "]-ID[", client->id(), "] CONNECTED"); + LOG_DEBUG("WS client IP [", client->remoteIP().toString().c_str(), "]-ID [", client->id(), "] CONNECTED"); break; case WS_EVT_DISCONNECT: - LOG_DEBUG("WS client IP[", client->remoteIP().toString().c_str(), "]-ID[", client->id(), "] DISCONNECTED"); + LOG_DEBUG("WS client IP [", client->remoteIP().toString().c_str(), "]-ID [", client->id(), "] DISCONNECTED"); break; case WS_EVT_PONG: - LOG_DEBUG("WS client IP[", client->remoteIP().toString().c_str(), "]-ID[", client->id(), "] PONG"); + LOG_DEBUG("WS client IP [", client->remoteIP().toString().c_str(), "]-ID [", client->id(), "] PONG"); break; case WS_EVT_DATA: { diff --git a/RotaxMonitor/src/webserver.h b/RotaxMonitor/src/webserver.h index c04a31e..e173276 100644 --- a/RotaxMonitor/src/webserver.h +++ b/RotaxMonitor/src/webserver.h @@ -35,7 +35,8 @@ private: void onSetTme(const ArduinoJson::JsonDocument &doc); private: - const uint8_t m_port = 80; + const uint8_t c_port = 80; + const uint32_t c_pingTime = 5000; fs::FS &m_filesystem; AsyncWebServer m_webserver; AsyncWebSocket m_websocket;