Handle server stopping message
OBS websocket sends a "ServerStopping" message when the websocket is closed. Because this isn't in JSON it turns into a DeserializeMessage error.
This commit is contained in:
parent
2a94ee3cda
commit
bece4b3ac0
2 changed files with 9 additions and 0 deletions
|
@ -172,6 +172,13 @@ impl Client {
|
||||||
trace!("{}", msg);
|
trace!("{}", msg);
|
||||||
let res: Result<(), InnerError> = async {
|
let res: Result<(), InnerError> = async {
|
||||||
let text = msg.into_text().map_err(InnerError::IntoText)?;
|
let text = msg.into_text().map_err(InnerError::IntoText)?;
|
||||||
|
let text = if text == "Server stopping" {
|
||||||
|
debug!("Websocket server is stopping");
|
||||||
|
r#"{"update-type": "ServerStopping"}"#.to_string()
|
||||||
|
} else {
|
||||||
|
text
|
||||||
|
};
|
||||||
|
|
||||||
let json = serde_json::from_str::<serde_json::Value>(&text)
|
let json = serde_json::from_str::<serde_json::Value>(&text)
|
||||||
.map_err(InnerError::DeserializeMessage)?;
|
.map_err(InnerError::DeserializeMessage)?;
|
||||||
|
|
||||||
|
|
|
@ -575,6 +575,8 @@ pub enum EventType {
|
||||||
/// The new enabled state of Studio Mode.
|
/// The new enabled state of Studio Mode.
|
||||||
new_state: bool,
|
new_state: bool,
|
||||||
},
|
},
|
||||||
|
/// WebSocket server is stopping.
|
||||||
|
ServerStopping,
|
||||||
/// Fallback value for any unknown event type.
|
/// Fallback value for any unknown event type.
|
||||||
#[serde(other)]
|
#[serde(other)]
|
||||||
Unknown,
|
Unknown,
|
||||||
|
|
Loading…
Reference in a new issue