feat: add total created conn
This commit is contained in:
13
src/main.rs
13
src/main.rs
@@ -21,10 +21,13 @@ use crate::slash_handles::{HandleContext, HandleTextMessage, HandleTextMessageTi
|
||||
use crate::slash_handles::{HandleTextMessageExit, HandleTextMessageStatics};
|
||||
use crate::slash_handles::{HandleTextMessagePass, HandleTextMessageRoom};
|
||||
use crate::slash_handles::{HandleTextMessageRooms, HandleTextMessageVersion};
|
||||
use std::sync::atomic::{AtomicU64, Ordering};
|
||||
|
||||
const NAME: &str = env!("CARGO_PKG_NAME");
|
||||
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||
|
||||
static TOTAL_CREATED_CONN: AtomicU64 = AtomicU64::new(0);
|
||||
|
||||
lazy_static! {
|
||||
static ref TEXT_MESSAGE_HANDLES: Vec<Box<dyn HandleTextMessage>>= {
|
||||
let handles:Vec<Box<dyn HandleTextMessage>> = vec![
|
||||
@@ -321,25 +324,21 @@ async fn main() -> Result<(), IoError> {
|
||||
let admin_pass = env::var("PASS").ok();
|
||||
let listen_addr = env::args().nth(1).unwrap_or_else(|| "127.0.0.1:8080".to_string());
|
||||
|
||||
let state = PeerMap::new(Mutex::new(HashMap::new()));
|
||||
let room = RoomMap::new(Mutex::new(BTreeMap::new()));
|
||||
|
||||
let handle_context = HandleContext {
|
||||
peer_map: state,
|
||||
room_map: room,
|
||||
peer_map: PeerMap::new(Mutex::new(HashMap::new())),
|
||||
room_map: RoomMap::new(Mutex::new(BTreeMap::new())),
|
||||
admin_pass,
|
||||
is_admin: false,
|
||||
room_id: None,
|
||||
client_id: None,
|
||||
};
|
||||
|
||||
// Create the event loop and TCP listener we'll accept connections on.
|
||||
let try_socket = TcpListener::bind(&listen_addr).await;
|
||||
let listener = try_socket.unwrap_or_else(|_| panic!("Failed to bind ok: {}", listen_addr));
|
||||
success!("Listening on: {}", listen_addr);
|
||||
|
||||
// Let's spawn the handling of each connection in a separate task.
|
||||
while let Ok((stream, addr)) = listener.accept().await {
|
||||
TOTAL_CREATED_CONN.fetch_add(1, Ordering::Relaxed);
|
||||
tokio::spawn(handle_connection(handle_context.clone(), stream, addr));
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@ use crate::types::{PeerMap, RoomMap, Tx, TxSendMessage};
|
||||
use std::net::SocketAddr;
|
||||
use chrono::Local;
|
||||
use crate::msg::RoomMessageDown;
|
||||
use crate::{NAME, VERSION};
|
||||
use crate::{NAME, VERSION, TOTAL_CREATED_CONN};
|
||||
use std::sync::atomic::Ordering;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct HandleContext {
|
||||
@@ -37,9 +38,10 @@ impl HandleTextMessage for HandleTextMessageStatics {
|
||||
|
||||
fn handle(&self, handle_context: &mut HandleContext, tx: &Tx, _addr: SocketAddr, _msg: &str) {
|
||||
tx.send_text(format!(
|
||||
"room count: {}\npeer count: {}",
|
||||
"room count: {}\npeer count: {}\ntotal conn count:{}",
|
||||
handle_context.room_map.lock().unwrap().len(),
|
||||
handle_context.peer_map.lock().unwrap().len(),
|
||||
TOTAL_CREATED_CONN.load(Ordering::Relaxed),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user