Added websocket for debug output
This commit is contained in:
parent
8b60c29667
commit
8f5d394f3a
@ -17,6 +17,7 @@
|
||||
#include "WebApi_security.h"
|
||||
#include "WebApi_sysstatus.h"
|
||||
#include "WebApi_webapp.h"
|
||||
#include "WebApi_ws_console.h"
|
||||
#include "WebApi_ws_live.h"
|
||||
#include <ESPAsyncWebServer.h>
|
||||
|
||||
@ -49,6 +50,7 @@ private:
|
||||
WebApiSecurityClass _webApiSecurity;
|
||||
WebApiSysstatusClass _webApiSysstatus;
|
||||
WebApiWebappClass _webApiWebapp;
|
||||
WebApiWsConsoleClass _webApiWsConsole;
|
||||
WebApiWsLiveClass _webApiWsLive;
|
||||
};
|
||||
|
||||
|
||||
19
include/WebApi_ws_console.h
Normal file
19
include/WebApi_ws_console.h
Normal file
@ -0,0 +1,19 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#include <ESPAsyncWebServer.h>
|
||||
|
||||
class WebApiWsConsoleClass {
|
||||
public:
|
||||
WebApiWsConsoleClass();
|
||||
void init(AsyncWebServer* server);
|
||||
void loop();
|
||||
|
||||
private:
|
||||
void onWebsocketEvent(AsyncWebSocket* server, AsyncWebSocketClient* client, AwsEventType type, void* arg, uint8_t* data, size_t len);
|
||||
|
||||
AsyncWebServer* _server;
|
||||
AsyncWebSocket _ws;
|
||||
|
||||
uint32_t _lastWsCleanup = 0;
|
||||
};
|
||||
@ -33,6 +33,7 @@ void WebApiClass::init()
|
||||
_webApiSecurity.init(&_server);
|
||||
_webApiSysstatus.init(&_server);
|
||||
_webApiWebapp.init(&_server);
|
||||
_webApiWsConsole.init(&_server);
|
||||
_webApiWsLive.init(&_server);
|
||||
|
||||
_server.begin();
|
||||
@ -55,6 +56,7 @@ void WebApiClass::loop()
|
||||
_webApiSecurity.loop();
|
||||
_webApiSysstatus.loop();
|
||||
_webApiWebapp.loop();
|
||||
_webApiWsConsole.loop();
|
||||
_webApiWsLive.loop();
|
||||
}
|
||||
|
||||
|
||||
37
src/WebApi_ws_console.cpp
Normal file
37
src/WebApi_ws_console.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
@ -48,6 +48,11 @@ export default defineConfig({
|
||||
target: 'ws://192.168.20.110/',
|
||||
ws: true,
|
||||
changeOrigin: true
|
||||
},
|
||||
'^/console': {
|
||||
target: 'ws://192.168.20.110/',
|
||||
ws: true,
|
||||
changeOrigin: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user