use std::{
collections::HashMap,
sync::{atomic::AtomicUsize, Arc},
};
use tokio::sync::mpsc;
use super::UserInfo;
use crate::core::websocat::echo::{command::Command, ConnId, Msg};
pub struct EchoServer {
pub visitor_count: Arc<AtomicUsize>,
pub cmd_rx: mpsc::UnboundedReceiver<Command>,
pub ctx: actix_web::web::Data<crate::server::AppContext>,
pub sessions: HashMap<ConnId, (mpsc::UnboundedSender<Msg>, Option<String>)>,
pub users: HashMap<String, (UserInfo, ConnId)>,
pub subscribes: HashMap<ConnId, Vec<String>>,
}