Add connected controllers hashmap for controller-ws

This commit is contained in:
Tobias Reisinger 2023-11-28 20:20:12 +01:00
parent 6459804e1f
commit 6536ff0792
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
17 changed files with 267 additions and 649 deletions
emgauwa-core/src

View file

@ -1,12 +1,15 @@
use actix_cors::Cors;
use std::collections::HashMap;
use std::net::TcpListener;
use std::str::FromStr;
use std::sync::{Arc, Mutex};
use crate::utils::drop_privileges;
use actix_web::middleware::TrailingSlash;
use actix_web::{middleware, web, App, HttpServer};
use emgauwa_lib::db::DbController;
use emgauwa_lib::handlers;
use emgauwa_lib::types::ConnectedControllersType;
use log::{trace, LevelFilter};
use simple_logger::SimpleLogger;
@ -41,6 +44,8 @@ async fn main() -> std::io::Result<()> {
.expect("Error setting all controllers inactive");
}
let connected_controllers: ConnectedControllersType = Arc::new(Mutex::new(HashMap::new()));
log::info!("Starting server on {}:{}", settings.host, settings.port);
HttpServer::new(move || {
let cors = Cors::default().allow_any_method().allow_any_header();
@ -59,6 +64,8 @@ async fn main() -> std::io::Result<()> {
.wrap(middleware::NormalizePath::new(TrailingSlash::Trim))
.app_data(web::JsonConfig::default().error_handler(handlers::json_error_handler))
.app_data(web::Data::new(pool.clone()))
.app_data(web::Data::new(connected_controllers.clone()))
.service(handlers::v1::controllers::index)
.service(handlers::v1::relays::index)
.service(handlers::v1::schedules::index)
.service(handlers::v1::schedules::tagged)
@ -67,7 +74,7 @@ async fn main() -> std::io::Result<()> {
.service(handlers::v1::schedules::add_list)
.service(handlers::v1::schedules::update)
.service(handlers::v1::schedules::delete)
.service(handlers::v1::ws::controllers::index)
.service(handlers::v1::ws::ws_controllers)
})
.listen(listener)?
.run()