From b0ee7e7f58c2c2bc98a132b35d1f0194e1075870 Mon Sep 17 00:00:00 2001 From: azw Date: Sun, 12 May 2024 19:02:24 +0800 Subject: [PATCH] 1 --- server/stat/src/master.rs | 3 ++- server/stat/src/master/master.rs | 7 +++++++ server/stat/src/master/mastermgr.rs | 28 ++++++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/server/stat/src/master.rs b/server/stat/src/master.rs index 8948080..3f7a8c2 100644 --- a/server/stat/src/master.rs +++ b/server/stat/src/master.rs @@ -1,4 +1,5 @@ - +pub mod master; pub mod mastermgr; +pub use master::*; pub use mastermgr::*; \ No newline at end of file diff --git a/server/stat/src/master/master.rs b/server/stat/src/master/master.rs index e69de29..92e395d 100644 --- a/server/stat/src/master/master.rs +++ b/server/stat/src/master/master.rs @@ -0,0 +1,7 @@ + +pub struct Master { + instance_id: i32, + remote_ip: String, + remote_port: i32, + last_pong_tick: i64 +} \ No newline at end of file diff --git a/server/stat/src/master/mastermgr.rs b/server/stat/src/master/mastermgr.rs index 9056d4d..a5d8585 100644 --- a/server/stat/src/master/mastermgr.rs +++ b/server/stat/src/master/mastermgr.rs @@ -1,9 +1,16 @@ use std::collections::HashMap; +use std::sync::Arc; +use tokio::net::TcpStream; use crate::app::UserApp; +use crate::master::Master; +use tokio::runtime::Runtime; +use tokio::sync::Mutex; +use crate::listener::WsListener; pub struct MasterMgr { curr_context_id: i64, - mastersvr_hash: HashMap, + mastersvr_hash: HashMap, + tokio_rt: Runtime, } @@ -18,12 +25,29 @@ impl MasterMgr { let p = Self{ curr_context_id: 0, mastersvr_hash: Default::default(), + tokio_rt: tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build() + .unwrap(), }; return p; } pub fn init(&self) { - + self.tokio_rt.spawn(async move { + let mut result = TcpStream::connect("192.168.100.39:7616").await; + match result { + Ok(v) => { + let a = Arc::new(Mutex::new(v)); + //WsListener::instance().upstream.lock().unwrap().replace(a.clone()); + println!("connect ok"); + //crate::listener::wslistener::upstream_enter(a, down_pack_queue, up_pack_queue).await; + }, + Err(e) => { + println!("connect err") + } + } + }); } pub fn uninit(&self) {