From fd8150c9d9fc1a1332179c0ef10daed637d3fcc5 Mon Sep 17 00:00:00 2001 From: RogueException Date: Sun, 4 Oct 2015 22:14:12 -0300 Subject: [PATCH] Fixed websocket-sharp logging, reconnect on error --- src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs | 11 +++++++---- src/Discord.Net/WebSockets/WebSocket.cs | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs b/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs index 93fd379de..bab9dcab0 100644 --- a/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs +++ b/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs @@ -2,8 +2,6 @@ using Discord.Helpers; using System; using System.Collections.Concurrent; -using System.Linq; -using System.Text; using System.Threading; using System.Threading.Tasks; using WSSharpNWebSocket = WebSocketSharp.WebSocket; @@ -38,9 +36,14 @@ namespace Discord.WebSockets _webSocket = new WSSharpNWebSocket(host); _webSocket.EmitOnPing = false; _webSocket.EnableRedirection = true; - _webSocket.Compression = WebSocketSharp.CompressionMethod.None; + _webSocket.Compression = WebSocketSharp.CompressionMethod.None; _webSocket.OnMessage += (s, e) => RaiseProcessMessage(e.Data); - _webSocket.OnError += (s, e) => _parent.RaiseOnLog(LogMessageSeverity.Error, $"Websocket Error: {e.Message}"); + _webSocket.OnError += async (s, e) => + { + _parent.RaiseOnLog(LogMessageSeverity.Error, $"Websocket Error: {e.Message}"); + await _parent.DisconnectInternal(e.Exception, true, true); + } + _webSocket.Log.Output = (e, m) => { }; //Dont let websocket-sharp print to console _webSocket.Connect(); return TaskHelper.CompletedTask; } diff --git a/src/Discord.Net/WebSockets/WebSocket.cs b/src/Discord.Net/WebSockets/WebSocket.cs index 7a74214e2..e9b0ef62e 100644 --- a/src/Discord.Net/WebSockets/WebSocket.cs +++ b/src/Discord.Net/WebSockets/WebSocket.cs @@ -115,7 +115,7 @@ namespace Discord.WebSockets } public Task Disconnect() => DisconnectInternal(new Exception("Disconnect was requested by user."), isUnexpected: false); - protected async Task DisconnectInternal(Exception ex = null, bool isUnexpected = true, bool skipAwait = false) + protected internal async Task DisconnectInternal(Exception ex = null, bool isUnexpected = true, bool skipAwait = false) { int oldState; bool hasWriterLock;