handle error
This commit is contained in:
parent
032b2921f0
commit
cd1c30c8eb
@ -139,27 +139,32 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn interserver_send_loop<S>(server_id: ServerId,
|
async fn interserver_send_loop<S>(server_id: ServerId,
|
||||||
mut socket: async_std::net::TcpStream,
|
mut socket: async_std::net::TcpStream,
|
||||||
output_loop_receiver: async_std::sync::Receiver<S>)
|
output_loop_receiver: async_std::sync::Receiver<S>)
|
||||||
where
|
where
|
||||||
S: Serialize + std::fmt::Debug + Send + 'static,
|
S: Serialize + std::fmt::Debug + Send + 'static,
|
||||||
{
|
{
|
||||||
async_std::task::spawn(async move {
|
async_std::task::spawn(async move {
|
||||||
loop {
|
loop {
|
||||||
info!("login send loop");
|
info!("login send loop");
|
||||||
let msg = output_loop_receiver.recv().await.unwrap();
|
match output_loop_receiver.recv().await {
|
||||||
|
Ok(msg) => {
|
||||||
|
let payload = serde_json::to_string(&msg);
|
||||||
|
if let Ok(payload) = payload {
|
||||||
|
let len_bytes = u32::to_le_bytes(payload.len() as u32);
|
||||||
|
|
||||||
let payload = serde_json::to_string(&msg);
|
match socket.write_all(&len_bytes).await {
|
||||||
if let Ok(payload) = payload {
|
Ok(_) => {},
|
||||||
let len_bytes = u32::to_le_bytes(payload.len() as u32);
|
Err(err) => warn!("send failed: {:?}", err),
|
||||||
|
}
|
||||||
match socket.write_all(&len_bytes).await {
|
match socket.write_all(&payload.as_bytes()).await {
|
||||||
Ok(_) => {},
|
Ok(_) => {},
|
||||||
Err(err) => warn!("send failed: {:?}", err),
|
Err(err) => warn!("send failed: {:?}", err),
|
||||||
}
|
}
|
||||||
match socket.write_all(&payload.as_bytes()).await {
|
}
|
||||||
Ok(_) => {},
|
},
|
||||||
Err(err) => warn!("send failed: {:?}", err),
|
Err(err) => {
|
||||||
|
warn!("error in send_loop: {:?}, {:?}", server_id, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -179,7 +184,7 @@ pub fn login_listen_mainloop<EG: EntityGateway + 'static>(state: Arc<Mutex<Chara
|
|||||||
loop {
|
loop {
|
||||||
let (socket, addr) = listener.accept().await.unwrap();
|
let (socket, addr) = listener.accept().await.unwrap();
|
||||||
info!("new ship server: {:?} {:?}", socket, addr);
|
info!("new ship server: {:?} {:?}", socket, addr);
|
||||||
|
|
||||||
id += 1;
|
id += 1;
|
||||||
let server_id = crate::common::interserver::ServerId(id);
|
let server_id = crate::common::interserver::ServerId(id);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user