1
This commit is contained in:
parent
fa8e824d8d
commit
b96f92c193
@ -2,15 +2,9 @@ use std::sync::Arc;
|
|||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
use crate::listener::WsListener;
|
use crate::listener::WsListener;
|
||||||
use crate::upstream::UpStreamMgr;
|
use crate::upstream::UpStreamMgr;
|
||||||
|
use crate::common::types::DownStreamPack;
|
||||||
use std::sync::OnceLock;
|
use std::sync::OnceLock;
|
||||||
|
|
||||||
pub struct DownStreamPack {
|
|
||||||
pub holder: Option<Arc::<std::sync::Mutex::<Self>>>,
|
|
||||||
pub socket_handle: u16,
|
|
||||||
pub data: bytes::BytesMut,
|
|
||||||
pub entry: Arc::<std::sync::Mutex::<r9::ListHeadLock<Self>>>,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct UserApp {
|
pub struct UserApp {
|
||||||
net_msg_queue: Arc::<std::sync::Mutex::<r9::QueueLock<DownStreamPack>>>,
|
net_msg_queue: Arc::<std::sync::Mutex::<r9::QueueLock<DownStreamPack>>>,
|
||||||
}
|
}
|
||||||
|
3
server/stat/src/common.rs
Normal file
3
server/stat/src/common.rs
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
pub mod types;
|
||||||
|
|
||||||
|
pub use types::*;
|
8
server/stat/src/common/types.rs
Normal file
8
server/stat/src/common/types.rs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
pub struct DownStreamPack {
|
||||||
|
pub holder: Option<Arc::<std::sync::Mutex::<Self>>>,
|
||||||
|
pub socket_handle: u16,
|
||||||
|
pub data: bytes::BytesMut,
|
||||||
|
pub entry: Arc::<std::sync::Mutex::<r9::ListHeadLock<Self>>>,
|
||||||
|
}
|
@ -1,7 +1,4 @@
|
|||||||
use std::rc::{Rc, Weak};
|
|
||||||
use std::cell::RefCell;
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use r9_macro::SharedFromSelf;
|
|
||||||
use actix::{Actor, StreamHandler};
|
use actix::{Actor, StreamHandler};
|
||||||
use actix_web_actors::ws::{self, Message};
|
use actix_web_actors::ws::{self, Message};
|
||||||
use actix_web::{
|
use actix_web::{
|
||||||
@ -19,15 +16,13 @@ use std::thread::JoinHandle;
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use actix::prelude::*;
|
use actix::prelude::*;
|
||||||
use bytes::{BufMut, BytesMut};
|
use bytes::{BufMut, BytesMut};
|
||||||
use actix_web::web::Bytes;
|
use tokio::io::{Interest};
|
||||||
use futures::FutureExt;
|
|
||||||
use tokio::io::{AsyncReadExt, Interest};
|
|
||||||
use crate::app::UserApp;
|
use crate::app::UserApp;
|
||||||
use crate::constant;
|
use crate::constant;
|
||||||
use tokio::net::TcpStream;
|
use tokio::net::TcpStream;
|
||||||
use tokio::runtime::Runtime;
|
use tokio::runtime::Runtime;
|
||||||
use crate::app::user_app::DownStreamPack;
|
use crate::common::types::DownStreamPack;
|
||||||
use tokio::io::{AsyncWriteExt, Ready};
|
use tokio::io::{AsyncWriteExt};
|
||||||
use std::sync::OnceLock;
|
use std::sync::OnceLock;
|
||||||
use std::sync::atomic::{AtomicU16, Ordering};
|
use std::sync::atomic::{AtomicU16, Ordering};
|
||||||
|
|
||||||
@ -51,7 +46,6 @@ static WsListenerInstance: OnceLock<WsListener> = OnceLock::new();
|
|||||||
#[rtype(result = "()")]
|
#[rtype(result = "()")]
|
||||||
pub struct DownStreamMessage {
|
pub struct DownStreamMessage {
|
||||||
data: actix_web::web::Bytes,
|
data: actix_web::web::Bytes,
|
||||||
//data: BytesMut,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Define HTTP actor
|
/// Define HTTP actor
|
||||||
@ -245,7 +239,7 @@ async fn upstream_enter(stream_arc: Arc<Mutex<TcpStream>>, down_pack_queue: Arc<
|
|||||||
entry: r9::ListHeadLock::<DownStreamPack>::new_node(Default::default()),
|
entry: r9::ListHeadLock::<DownStreamPack>::new_node(Default::default()),
|
||||||
}));
|
}));
|
||||||
node.lock().unwrap().holder = Some(node.clone());
|
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::<DownStreamPack>::new_node(Arc::downgrade(&node));
|
||||||
up_pack_queue.lock().unwrap().push(&node.lock().unwrap().entry);
|
up_pack_queue.lock().unwrap().push(&node.lock().unwrap().entry);
|
||||||
}
|
}
|
||||||
//a.do_send(msg);
|
//a.do_send(msg);
|
||||||
|
@ -6,6 +6,7 @@ mod upstream;
|
|||||||
mod downstream;
|
mod downstream;
|
||||||
mod ss;
|
mod ss;
|
||||||
mod constant;
|
mod constant;
|
||||||
|
mod common;
|
||||||
|
|
||||||
use crate::app::UserApp;
|
use crate::app::UserApp;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user