diff options
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/gateway/shard.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/client/gateway/shard.rs b/src/client/gateway/shard.rs index ecf5c89..0b2b35f 100644 --- a/src/client/gateway/shard.rs +++ b/src/client/gateway/shard.rs @@ -12,6 +12,7 @@ use super::{GatewayError, GatewayStatus, prep}; use time; use websocket::client::{Client as WsClient, Sender, Receiver}; use websocket::message::Message as WsMessage; +use websocket::result::WebSocketError; use websocket::stream::WebSocketStream; use websocket::ws::sender::Sender as WsSender; use ::constants::OpCode; @@ -410,6 +411,12 @@ impl Shard { self.reconnect(receiver).map(|(ev, rec)| Some((ev, Some(rec)))) }, Err(Error::WebSocket(why)) => { + if let WebSocketError::NoDataAvailable = why { + if self.heartbeat_instants.1.is_none() { + return Ok(None); + } + } + warn!("Websocket error: {:?}", why); info!("Will attempt to reconnect or resume"); |