use crate::WebsocketConnection;
use futures::SinkExt;
use log::error;
use tungstenite::{Error, Message};
pub async fn send_close(websocket: &mut WebsocketConnection) {
if let Err(e) = websocket.send(Message::Close(None)).await {
match e {
Error::ConnectionClosed | Error::AlreadyClosed | Error::Protocol(_) => {
return;
}
_ => {
error!("failed to send close frame: {}", e);
}
}
}
}
pub fn should_terminate(message: &Message) -> bool {
if let Message::Close(_) = message {
true
} else {
false
}
}