diff --git a/server/stat/src/app/user_app.rs b/server/stat/src/app/user_app.rs index 5b7a56b..162fd14 100644 --- a/server/stat/src/app/user_app.rs +++ b/server/stat/src/app/user_app.rs @@ -2,15 +2,9 @@ use std::sync::Arc; use std::sync::Mutex; use crate::listener::WsListener; use crate::upstream::UpStreamMgr; +use crate::common::types::DownStreamPack; use std::sync::OnceLock; -pub struct DownStreamPack { - pub holder: Option>>, - pub socket_handle: u16, - pub data: bytes::BytesMut, - pub entry: Arc::>>, -} - pub struct UserApp { net_msg_queue: Arc::>>, } diff --git a/server/stat/src/common.rs b/server/stat/src/common.rs new file mode 100644 index 0000000..4d4d077 --- /dev/null +++ b/server/stat/src/common.rs @@ -0,0 +1,3 @@ +pub mod types; + +pub use types::*; \ No newline at end of file diff --git a/server/stat/src/common/types.rs b/server/stat/src/common/types.rs new file mode 100644 index 0000000..f7164d7 --- /dev/null +++ b/server/stat/src/common/types.rs @@ -0,0 +1,8 @@ +use std::sync::Arc; + +pub struct DownStreamPack { + pub holder: Option>>, + pub socket_handle: u16, + pub data: bytes::BytesMut, + pub entry: Arc::>>, +} \ No newline at end of file diff --git a/server/stat/src/listener/wslistener.rs b/server/stat/src/listener/wslistener.rs index e6fded6..0ef8b59 100644 --- a/server/stat/src/listener/wslistener.rs +++ b/server/stat/src/listener/wslistener.rs @@ -1,7 +1,4 @@ -use std::rc::{Rc, Weak}; -use std::cell::RefCell; use std::collections::HashMap; -use r9_macro::SharedFromSelf; use actix::{Actor, StreamHandler}; use actix_web_actors::ws::{self, Message}; use actix_web::{ @@ -19,15 +16,13 @@ use std::thread::JoinHandle; use std::time::Duration; use actix::prelude::*; use bytes::{BufMut, BytesMut}; -use actix_web::web::Bytes; -use futures::FutureExt; -use tokio::io::{AsyncReadExt, Interest}; +use tokio::io::{Interest}; use crate::app::UserApp; use crate::constant; use tokio::net::TcpStream; use tokio::runtime::Runtime; -use crate::app::user_app::DownStreamPack; -use tokio::io::{AsyncWriteExt, Ready}; +use crate::common::types::DownStreamPack; +use tokio::io::{AsyncWriteExt}; use std::sync::OnceLock; use std::sync::atomic::{AtomicU16, Ordering}; @@ -51,7 +46,6 @@ static WsListenerInstance: OnceLock = OnceLock::new(); #[rtype(result = "()")] pub struct DownStreamMessage { data: actix_web::web::Bytes, - //data: BytesMut, } /// Define HTTP actor @@ -245,7 +239,7 @@ async fn upstream_enter(stream_arc: Arc>, down_pack_queue: Arc< entry: r9::ListHeadLock::::new_node(Default::default()), })); node.lock().unwrap().holder = Some(node.clone()); - node.lock().unwrap().entry = r9::ListHeadLock::< crate::app::user_app::DownStreamPack>::new_node(Arc::downgrade(&node)); + node.lock().unwrap().entry = r9::ListHeadLock::::new_node(Arc::downgrade(&node)); up_pack_queue.lock().unwrap().push(&node.lock().unwrap().entry); } //a.do_send(msg); diff --git a/server/stat/src/main.rs b/server/stat/src/main.rs index 86d57f7..0820346 100755 --- a/server/stat/src/main.rs +++ b/server/stat/src/main.rs @@ -6,6 +6,7 @@ mod upstream; mod downstream; mod ss; mod constant; +mod common; use crate::app::UserApp;