#handler #process #dev #websocket-client #ctrl-c #tokio-tungstenite

bin+lib wsclient

使用tokio-tungstenite轻松开发的WebSocket客户端

3个版本

0.1.2 2023年4月17日
0.1.1 2023年4月17日
0.1.0 2023年4月17日

#255WebSocket

每月41次 下载

MIT/Apache

10KB
122 代码行

用法

use ctrlc;
use std::env;
use wsclient;

#[derive(Default)]
struct DataListener {}

impl wsclient::Handler for DataListener {
    fn process(&self, data: String) {
        println!("{:?}", data);
    }
}

#[tokio::main]
pub async fn main() {
    let url = env::args()
        .nth(1)
        .unwrap_or_else(|| panic!("this program requires at least one argument"));
    let listener = DataListener::default();
    wsclient::WsClient::new()
        .start(url, Box::new(listener))
        .await;

    use std::sync::mpsc::channel;
    let (tx, rx) = channel();
    ctrlc::set_handler(move || tx.send(()).expect("Could not send signal on channel."))
        .expect("Error setting Ctrl-C handler");
    rx.recv().expect("Could not receive from channel.");
    println!("Ctrl-C and exiting...");
    std::process::exit(0);
}

依赖项

~5–15MB
~204K SLoC