This commit is contained in:
azw 2024-05-12 22:17:05 +08:00
parent 28c89a6d50
commit 5726c3ad04

View File

@ -9,15 +9,11 @@ use actix_web::{
HttpServer, HttpServer,
Error Error
}; };
use std::sync::{Arc};
use tokio::sync::Mutex;
use std::thread; use std::thread;
use std::thread::JoinHandle;
use actix::prelude::*; use actix::prelude::*;
use bytes::{BufMut, BytesMut}; use bytes::{BufMut, BytesMut};
use crate::app::UserApp; use crate::app::UserApp;
use crate::constant; use crate::constant;
use tokio::net::TcpStream;
use tokio::runtime::Runtime; use tokio::runtime::Runtime;
use crate::common::types::{DownStreamPack, DownStreamMessage, UpStreamPack}; use crate::common::types::{DownStreamPack, DownStreamMessage, UpStreamPack};
use std::sync::OnceLock; use std::sync::OnceLock;
@ -28,13 +24,9 @@ struct AppStateWithCounter {
} }
pub struct WsListener { pub struct WsListener {
work_thread: Option<JoinHandle<()>>,
socket_hash: std::sync::Mutex<HashMap<u16, Recipient<DownStreamMessage>>>, socket_hash: std::sync::Mutex<HashMap<u16, Recipient<DownStreamMessage>>>,
cur_socket_handle: AtomicU16, cur_socket_handle: AtomicU16,
pub upstream: std::sync::Mutex<Option<std::sync::Arc<Mutex<TcpStream>>>>,
tokio_rt: Runtime, tokio_rt: Runtime,
down_pack_queue: Arc<std::sync::Mutex<r9::QueueLock<DownStreamPack>>>,
up_pack_queue: Arc<std::sync::Mutex<r9::QueueLock<UpStreamPack>>>,
} }
static WsListenerInstance: OnceLock<WsListener> = OnceLock::new(); static WsListenerInstance: OnceLock<WsListener> = OnceLock::new();
@ -178,15 +170,11 @@ impl WsListener {
pub fn new() -> Self { pub fn new() -> Self {
let p = Self{ let p = Self{
cur_socket_handle: AtomicU16::new(0), cur_socket_handle: AtomicU16::new(0),
work_thread: Default::default(),
socket_hash: Default::default(), socket_hash: Default::default(),
upstream: Default::default(),
tokio_rt: tokio::runtime::Builder::new_multi_thread() tokio_rt: tokio::runtime::Builder::new_multi_thread()
.enable_all() .enable_all()
.build() .build()
.unwrap(), .unwrap(),
down_pack_queue: r9::QueueLock::<DownStreamPack>::new_ex(),
up_pack_queue: r9::QueueLock::<UpStreamPack>::new_ex(),
}; };
return p; return p;
} }