Add connected controllers hashmap for controller-ws
This commit is contained in:
		
							parent
							
								
									6459804e1f
								
							
						
					
					
						commit
						6536ff0792
					
				
					 17 changed files with 267 additions and 649 deletions
				
			
		| 
						 | 
				
			
			@ -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()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue