From 9a541e1090a5f2f98a5bbc59319dfeeb1d2ed483 Mon Sep 17 00:00:00 2001 From: Ivan Li Date: Sun, 21 May 2023 14:12:48 +0800 Subject: [PATCH] feat: retry connect clash. --- src/main.rs | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/src/main.rs b/src/main.rs index 22889b4..679db9f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,12 @@ -use std::format; +use std::{format, time::Duration}; use clap::Parser; use futures_util::{pin_mut, StreamExt}; -use tokio::io::{stdout, AsyncWriteExt}; +use log::info; +use tokio::{ + io::{stdout, AsyncWriteExt}, + time::sleep, +}; use tokio_tungstenite::connect_async; mod clash_conn_msg; @@ -36,6 +40,14 @@ async fn main() { let connect_addr = args.clash_url; + loop { + pipe(connect_addr.clone()).await; + sleep(Duration::from_secs(1)).await; + info!("restart!"); + } +} + +async fn pipe(connect_addr: String) { let url = url::Url::parse(&connect_addr).unwrap(); let (ws_stream, _) = connect_async(url).await.expect("Failed to connect"); @@ -64,22 +76,22 @@ async fn main() { let state = statistics_manager.get_state().await; - stdout() - .write_all( - format!( - "len: {},speed_upload: {}, speed_download: {}, update_direct_speed: {}, download_direct_speed: {}, update_proxy_speed: {}, download_proxy_speed: {}\n", - state.connections, - state.speed_upload, - state.speed_download, - state.direct_upload_speed, - state.direct_download_speed, - state.proxy_upload_speed, - state.proxy_download_speed, - ) - .as_bytes(), - ) - .await - .unwrap(); + // stdout() + // .write_all( + // format!( + // "len: {},speed_upload: {}, speed_download: {}, update_direct_speed: {}, download_direct_speed: {}, update_proxy_speed: {}, download_proxy_speed: {}\n", + // state.connections, + // state.speed_upload, + // state.speed_download, + // state.direct_upload_speed, + // state.direct_download_speed, + // state.proxy_upload_speed, + // state.proxy_download_speed, + // ) + // .as_bytes(), + // ) + // .await + // .unwrap(); let udp_server = udp_server::UdpServer::global().await; let mut buf = [0; 32];