mod config; mod game; use crate::config::Settings; use game::world::GameWorld; use std::net::TcpListener; use std::thread::spawn; use tungstenite::server::accept; fn main() { let settings = Settings::new().unwrap(); let world = GameWorld::new(); let mut dispatcher = world.dispatcher(); dispatcher.dispatch(); let server = TcpListener::bind(settings.bind).unwrap(); for stream in server.incoming() { spawn(move || { let mut websocket = accept(stream.unwrap()).unwrap(); loop { let msg = websocket.read_message().unwrap(); if msg.is_binary() || msg.is_text() { websocket.write_message(msg).unwrap(); } } }); } dispatcher.wait() }