diff --git a/server/stat/src/listener/wslistener.rs b/server/stat/src/listener/wslistener.rs index 6765793..f7d3d3c 100644 --- a/server/stat/src/listener/wslistener.rs +++ b/server/stat/src/listener/wslistener.rs @@ -1,3 +1,4 @@ +use std::time::{Duration, Instant}; use std::rc::{Rc, Weak}; use std::cell::RefCell; use r9_macro::SharedFromSelf; @@ -18,6 +19,26 @@ use actix_web::{ Error, Responder}; use std::sync::{Arc, Mutex}; +use actix::prelude::*; + +#[derive(Debug)] +pub struct WsSession { + /// unique session id + pub id: usize, + + /// Client must send ping at least once per 10 seconds (CLIENT_TIMEOUT), + /// otherwise we drop connection. + pub hb: Instant, + + /// joined room + pub room: String, + + /// peer name + pub name: Option, + + // server + pub addr: Addr, +} #[derive(SharedFromSelf)] #[derive(Singleton)] @@ -26,7 +47,7 @@ pub struct WsListener { } /// Define HTTP actor -struct WsConn; +pub struct WsConn; impl Actor for WsConn { type Context = ws::WebsocketContext; diff --git a/server/stat/src/listener/wssession.rs b/server/stat/src/listener/wssession.rs new file mode 100644 index 0000000..e69de29