Error only on close message when fetching the rate

Messages Ping, Pong and Binary are ignored and not reported as error.
This commit is contained in:
Daniel Karzel 2021-02-25 12:52:38 +11:00
parent fffa679f42
commit fc2c08c7c9

View File

@ -36,8 +36,8 @@ impl LatestRate for RateService {
pub enum Error { pub enum Error {
#[error("Rate has not yet been retrieved from Kraken websocket API")] #[error("Rate has not yet been retrieved from Kraken websocket API")]
NotYetRetrieved, NotYetRetrieved,
#[error("Message is not text")] #[error("Received close message from Kraken")]
NonTextMessage, CloseMessage,
#[error("Websocket: ")] #[error("Websocket: ")]
WebSocket(String), WebSocket(String),
#[error("Serde: ")] #[error("Serde: ")]
@ -77,8 +77,11 @@ impl RateService {
while let Some(msg) = rate_stream.next().await { while let Some(msg) = rate_stream.next().await {
let msg = match msg { let msg = match msg {
Ok(Message::Text(msg)) => msg, Ok(Message::Text(msg)) => msg,
Ok(Message::Close(..)) => {
let _ = rate_update.send(Err(Error::CloseMessage));
continue;
}
Ok(_) => { Ok(_) => {
let _ = rate_update.send(Err(Error::NonTextMessage));
continue; continue;
} }
Err(e) => { Err(e) => {