odyssey-server/src/main.rs

29 lines
783 B
Rust

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()
}