From 83aca9acef9f664d36c6d2bde45485c764755097 Mon Sep 17 00:00:00 2001 From: RogueException Date: Tue, 23 Aug 2016 06:12:59 -0300 Subject: [PATCH] Dont crash the heartbeat task if unable to send a heartbeat --- src/Discord.Net/WebSocket/DiscordSocketClient.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net/WebSocket/DiscordSocketClient.cs b/src/Discord.Net/WebSocket/DiscordSocketClient.cs index ac9f27bdb..d0bea7faf 100644 --- a/src/Discord.Net/WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net/WebSocket/DiscordSocketClient.cs @@ -1513,7 +1513,6 @@ namespace Discord.WebSocket private async Task RunHeartbeatAsync(int intervalMillis, CancellationToken cancelToken, ILogger logger) { - //Clean this up when Discord's session patch is live try { await logger.DebugAsync("Heartbeat Started").ConfigureAwait(false); @@ -1529,8 +1528,15 @@ namespace Discord.WebSocket } } - await ApiClient.SendHeartbeatAsync(_lastSeq).ConfigureAwait(false); - _heartbeatTime = Environment.TickCount; + try + { + await ApiClient.SendHeartbeatAsync(_lastSeq).ConfigureAwait(false); + _heartbeatTime = Environment.TickCount; + } + catch (Exception ex) + { + await logger.WarningAsync("Heartbeat Errored", ex).ConfigureAwait(false); + } await Task.Delay(intervalMillis, cancelToken).ConfigureAwait(false); }