blob: d4970eb62c96ccd7d33247d2c89fb34960a7736d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
use clap::Parser;
use karyon_jsonrpc::Client;
use karyon_p2p::endpoint::Endpoint;
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
struct Cli {
/// RPC server endpoint.
#[arg(short)]
rpc_endpoint: Endpoint,
}
fn main() {
smol::block_on(async {
env_logger::init();
let cli = Cli::parse();
let rpc = Client::builder(cli.rpc_endpoint)
.expect("Create rpc client builder")
.build()
.await
.expect("Create rpc client");
let (_, sub) = rpc
.subscribe("MonitorRPC.conn_subscribe", ())
.await
.expect("Subscribe to connection events");
let (_, sub2) = rpc
.subscribe("MonitorRPC.peer_pool_subscribe", ())
.await
.expect("Subscribe to peer pool events");
smol::spawn(async move {
loop {
let _event = sub.recv().await.expect("Receive connection event");
}
})
.detach();
smol::spawn(async move {
loop {
let _event = sub2.recv().await.expect("Receive peer pool event");
}
}).await;
});
}
|