From 8dbd4db2edcf3a5cae5248957f33c695777bb331 Mon Sep 17 00:00:00 2001 From: FiniteReality Date: Fri, 24 Apr 2020 14:24:50 +0100 Subject: [PATCH] Also try to resume on missed heartbeats --- src/Discord.Net.WebSocket/DiscordSocketClient.cs | 4 ++-- src/Discord.Net.WebSocket/GatewayReconnectException.cs | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 724fa715e..1819966b3 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -511,7 +511,7 @@ namespace Discord.WebSocket case GatewayOpCode.Reconnect: { await _gatewayLogger.DebugAsync("Received Reconnect").ConfigureAwait(false); - _connection.Error(new GatewayReconnectException()); + _connection.Error(new GatewayReconnectException("Server requested a reconnect")); } break; case GatewayOpCode.Dispatch: @@ -1689,7 +1689,7 @@ namespace Discord.WebSocket { if (ConnectionState == ConnectionState.Connected && (_guildDownloadTask?.IsCompleted ?? true)) { - _connection.Error(new Exception("Server missed last heartbeat")); + _connection.Error(new GatewayReconnectException("Server missed last heartbeat")); return; } } diff --git a/src/Discord.Net.WebSocket/GatewayReconnectException.cs b/src/Discord.Net.WebSocket/GatewayReconnectException.cs index 3a509c368..1a8024558 100644 --- a/src/Discord.Net.WebSocket/GatewayReconnectException.cs +++ b/src/Discord.Net.WebSocket/GatewayReconnectException.cs @@ -3,7 +3,7 @@ using System; namespace Discord.WebSocket { /// - /// An exception thrown when Discord requests the gateway client to + /// An exception thrown when the gateway client has been requested to /// reconnect. /// public class GatewayReconnectException : Exception @@ -12,8 +12,11 @@ namespace Discord.WebSocket /// Creates a new instance of the /// type. /// - public GatewayReconnectException() - : base("Server requested a reconnect") + /// + /// The reason why the gateway has been requested to reconnect. + /// + public GatewayReconnectException(string message) + : base(message) { } } }