diff --git a/chat-signaling-server/src/bin/server.rs b/chat-signaling-server/src/bin/server.rs index 1c3ab9e..13a1ed8 100644 --- a/chat-signaling-server/src/bin/server.rs +++ b/chat-signaling-server/src/bin/server.rs @@ -17,6 +17,9 @@ enum Subcommand { listen_address: String, #[clap(long, short = 'p', default_value = "3000", env)] listen_port: u16, + + #[clap(long, default_value = "redis://127.0.0.1", env)] + redis_addr: String, }, #[cfg(feature = "extract-static")] @@ -28,6 +31,7 @@ impl Default for Subcommand { Subcommand::Serve { listen_address: "127.0.0.1".into(), listen_port: 3000, + redis_addr: String::from("redis://127.0.0.1") } } } @@ -42,12 +46,15 @@ async fn main() -> Result<(), Box> { Subcommand::Serve { listen_address, listen_port, + redis_addr, } => { let addrs: Vec<_> = (listen_address.as_str(), listen_port) .to_socket_addrs()? .collect(); - let service = chat_signaling_server::web::routes::make_service()?; + let service = chat_signaling_server::web::routes::make_service(Some(chat_signaling_server::web::routes::Config{ + redis_addr, + }))?; let mut futures = futures::stream::FuturesUnordered::from_iter(addrs.iter().map(|addr| async { diff --git a/chat-signaling-server/src/web/routes.rs b/chat-signaling-server/src/web/routes.rs index 17266cb..8c3dfd9 100644 --- a/chat-signaling-server/src/web/routes.rs +++ b/chat-signaling-server/src/web/routes.rs @@ -50,7 +50,21 @@ async fn reload(State(state): State>>) -> Json Result>, Box> { +pub struct Config { + pub redis_addr: String, +} + +impl Default for Config { + fn default() -> Self { + Self { + redis_addr: String::from("redis://127.0.0.1") + } + } +} + + +pub fn make_service(config: Option) -> Result>, Box> { + let config = config.unwrap_or_default(); let templates = load_templates()?; let router = Router::new(); @@ -58,7 +72,7 @@ pub fn make_service() -> Result>, Box