Adds webserver for serving UI elements
This commit is contained in:
1 parent
c3ababbf12
commit
f1da4e06f5
9 files changed
+7641
-4
No files matched your search
@@ -3,4 +3,4 @@ add_library(UI OBJECT Server.cpp)
|
||||
|
||||
target_include_directories(UI PUBLIC include)
|
||||
|
||||
target_link_libraries(UI PRIVATE Core DNS PUBLIC Asio)
|
||||
target_link_libraries(UI PRIVATE Core DNS PUBLIC Asio HTTPLib)
|
||||
@@ -10,14 +10,40 @@ Server::Server(Logger& logger, EventBus& eventBus)
|
||||
_eventBus(eventBus)
|
||||
{
|
||||
_logger.debug.ln ("Starting UI Webserver...");
|
||||
_server = new httplib::Server;
|
||||
|
||||
//Set static file directory
|
||||
auto ret = _server->set_mount_point("/", "./static/ui");
|
||||
if (!ret) {
|
||||
_logger.fatal.ln ("UI static file directory static/ui not found!");
|
||||
}
|
||||
//Redirecto / to index.htm
|
||||
_server->Get("/", [this](const auto& req, auto& res) {
|
||||
res.set_redirect("/index.htm");
|
||||
});
|
||||
|
||||
_server->set_logger([this](const auto& req, const auto& res) {
|
||||
//your_logger(req, res);
|
||||
_logger.debug.ln ("UI Log message from Webserver. Implement passthrough!");
|
||||
});
|
||||
|
||||
_thread = thread(&Server::run, this);
|
||||
_logger.debug.ln ("UI Webserver started");
|
||||
}
|
||||
|
||||
Server::~Server() {
|
||||
_logger.debug.ln ("Stopping UI Webserver...");
|
||||
_server->stop();
|
||||
_thread.join();
|
||||
delete _server;
|
||||
_logger.debug.ln ("UI Webserver stopped");
|
||||
}
|
||||
|
||||
void Server::run() {
|
||||
_logger.info.ln ("UI Running Webserver on Port 8080");
|
||||
_server->listen("0.0.0.0", 8080);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
#ifndef UI_SERVER_HPP
|
||||
#define UI_SERVER_HPP
|
||||
#include <thread>
|
||||
#include "asio.hpp"
|
||||
#include "Core.hpp"
|
||||
#include "httplib.h"
|
||||
|
||||
namespace Plains {
|
||||
namespace UI {
|
||||
@@ -9,6 +11,7 @@ namespace UI {
|
||||
using Core::EventBus;
|
||||
using Core::Logger;
|
||||
using Core::Exception;
|
||||
using std::thread;
|
||||
|
||||
|
||||
class Server
|
||||
@@ -18,6 +21,9 @@ class Server
|
||||
Logger& _logger;
|
||||
asio::io_context _ioContext;
|
||||
asio::ip::tcp::endpoint _sender_endpoint;
|
||||
httplib::Server* _server;
|
||||
thread _thread;
|
||||
void run();
|
||||
|
||||
public:
|
||||
Server(Logger& logger, EventBus& eventBus);
|
||||
|
||||
Reference in new issue
Block a user