-
Notifications
You must be signed in to change notification settings - Fork 5
/
tcp_server.rs
42 lines (37 loc) · 1.25 KB
/
tcp_server.rs
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
use log::info;
use rpc_core::net::config_builder::TcpConfigBuilder;
use rpc_core::net::tcp_server;
fn main() {
std::env::set_var("RUST_LOG", "trace");
env_logger::init();
let runtime = tokio::runtime::Builder::new_current_thread()
.enable_all()
.build()
.unwrap();
runtime.block_on(async {
let local = tokio::task::LocalSet::new();
local
.run_until(async move {
let server = tcp_server::TcpServer::new(
6666,
TcpConfigBuilder::new().auto_pack(false).build(),
);
server.on_session(move |session| {
info!("on_open");
let session = session.upgrade().unwrap();
session.on_data(|data| {
info!("on_data: {}", String::from_utf8_lossy(data.as_slice()));
});
session.on_close(|| {
info!("on_close");
});
});
info!("start...");
server.start();
loop {
tokio::time::sleep(tokio::time::Duration::from_secs(1000)).await;
}
})
.await;
});
}