30 lines
720 B
Rust
30 lines
720 B
Rust
use crate::minecraft::client::client::Client;
|
|
use tokio::net::TcpStream;
|
|
|
|
use crate::DbPool;
|
|
|
|
pub async fn process_mc_socket(stream: TcpStream, pool: DbPool) -> Result<(), String> {
|
|
println!("new client {:?}", stream);
|
|
|
|
let mut client = Client::create(stream, pool);
|
|
|
|
loop {
|
|
tokio::select! {
|
|
Ok(()) = client.in_stream.readable() => {
|
|
let res = client.in_read().await?;
|
|
if res == 0 {
|
|
break;
|
|
}
|
|
}
|
|
_ = client.out_readable() => {
|
|
let res = client.out_read().await?;
|
|
if res == 0 {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Ok(())
|
|
}
|
|
|