1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use core::{env, state::GlobalState};
use session::Session;
use tokio::sync::mpsc;
use utils::net::{accept_stream, listener};
mod models;
mod routes;
mod session;
pub async fn start_server() {
let listener = listener("Main", env::from_env(env::MAIN_PORT)).await;
let mut shutdown = GlobalState::shutdown();
let mut session_id = 1;
while let Some(values) = accept_stream(&listener, &mut shutdown).await {
let (message_sender, message_recv) = mpsc::channel(20);
let session = Session::new(session_id, values, message_sender);
tokio::spawn(session.process(message_recv));
session_id += 1;
}
}