feat: add total created conn

This commit is contained in:
2021-05-17 23:45:18 +08:00
parent 37d3553ab7
commit 323cbf6d45
2 changed files with 10 additions and 9 deletions

View File

@@ -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));
}

View File

@@ -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),
));
}
}