37 lines
965 B
C++
37 lines
965 B
C++
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (C) 2022 Thomas Basler and others
|
|
*/
|
|
#include "WebApi_ws_console.h"
|
|
#include "Configuration.h"
|
|
#include "MessageOutput.h"
|
|
#include "WebApi.h"
|
|
#include "defaults.h"
|
|
|
|
WebApiWsConsoleClass::WebApiWsConsoleClass()
|
|
: _ws("/console")
|
|
{
|
|
}
|
|
|
|
void WebApiWsConsoleClass::init(AsyncWebServer* server)
|
|
{
|
|
_server = server;
|
|
_server->addHandler(&_ws);
|
|
MessageOutput.register_ws_output(&_ws);
|
|
}
|
|
|
|
void WebApiWsConsoleClass::loop()
|
|
{
|
|
// see: https://github.com/me-no-dev/ESPAsyncWebServer#limiting-the-number-of-web-socket-clients
|
|
if (millis() - _lastWsCleanup > 1000) {
|
|
_ws.cleanupClients();
|
|
|
|
if (Configuration.get().Security_AllowReadonly) {
|
|
_ws.setAuthentication("", "");
|
|
} else {
|
|
_ws.setAuthentication(AUTH_USERNAME, Configuration.get().Security_Password);
|
|
}
|
|
|
|
_lastWsCleanup = millis();
|
|
}
|
|
} |