mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
ws: don't close connection when receiving ping message
This commit is contained in:
parent
8cab0297a1
commit
5ed876f934
1 changed files with 27 additions and 8 deletions
|
|
@ -463,15 +463,34 @@ impl<S: futures::AsyncRead + futures::AsyncWrite + Unpin> ConnectionReader<S> {
|
|||
.await
|
||||
.ok_or_else(|| anyhow::anyhow!("Stream ended"))??;
|
||||
|
||||
match InMessage::from_ws_message(message) {
|
||||
Ok(in_message) => {
|
||||
self.handle_in_message(in_message).await?;
|
||||
}
|
||||
Err(err) => {
|
||||
::log::debug!("Couldn't parse in_message: {:?}", err);
|
||||
match &message {
|
||||
tungstenite::Message::Text(_) | tungstenite::Message::Binary(_) => {
|
||||
match InMessage::from_ws_message(message) {
|
||||
Ok(in_message) => {
|
||||
self.handle_in_message(in_message).await?;
|
||||
}
|
||||
Err(err) => {
|
||||
::log::debug!("Couldn't parse in_message: {:?}", err);
|
||||
|
||||
self.send_error_response("Invalid request".into(), None, None)
|
||||
.await?;
|
||||
self.send_error_response("Invalid request".into(), None, None)
|
||||
.await?;
|
||||
}
|
||||
}
|
||||
}
|
||||
tungstenite::Message::Ping(_) => {
|
||||
::log::trace!("Received ping message");
|
||||
// tungstenite sends a pong response by itself
|
||||
}
|
||||
tungstenite::Message::Pong(_) => {
|
||||
::log::trace!("Received pong message");
|
||||
}
|
||||
tungstenite::Message::Close(_) => {
|
||||
::log::debug!("Client sent close frame");
|
||||
|
||||
break Ok(());
|
||||
}
|
||||
tungstenite::Message::Frame(_) => {
|
||||
::log::warn!("Read raw websocket frame, this should not happen");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue