use std::sync::Arc; use imks::engine::server::EngineConfig; use imks::socket::server::SocketServer; fn main() { tracing_subscriber::fmt() .with_env_filter( tracing_subscriber::EnvFilter::try_from_default_env() .unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("info")), ) .init(); let config = EngineConfig::default(); let socket_server = Arc::new(SocketServer::new(config)); let addr = "0.0.0.0:3000"; tracing::info!("Starting Socket.IO server on {}", addr); tokio::runtime::Runtime::new() .expect("Failed to create Tokio runtime") .block_on(async { let namespace = socket_server.of("/"); namespace .on_connect(|socket, _auth| { tracing::info!( "Socket {} connected (engine: {})", socket.sid, socket.engine_sid ); Ok(()) }) .await; socket_server.run_http(addr).await.expect("Server error"); }); }