From e6f370560fe890d5b20bfa13a1e225d776ff12c6 Mon Sep 17 00:00:00 2001 From: RogueException Date: Mon, 12 Oct 2015 00:44:10 -0300 Subject: [PATCH] Push close messages from WebSocketSharp upwards --- .../WebSockets/WebSocket.WebSocketSharp.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs b/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs index 49daad687..942239f82 100644 --- a/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs +++ b/src/Discord.Net/WebSockets/WebSocket.WebSocketSharp.cs @@ -41,10 +41,17 @@ namespace Discord.WebSockets _webSocket.OnError += async (s, e) => { _parent.RaiseOnLog(LogMessageSeverity.Error, $"Websocket Error: {e.Message}"); - await _parent.DisconnectInternal(e.Exception, true, true); + await _parent.DisconnectInternal(e.Exception, isUnexpected: true, skipAwait: true); }; - _webSocket.Log.Output = (e, m) => { }; //Dont let websocket-sharp print to console - _webSocket.Connect(); + _webSocket.OnClose += async (s, e) => + { + string code = e.WasClean ? e.Code.ToString() : "Unexpected"; + string reason = e.Reason != "" ? e.Reason : "No Reason"; + Exception ex = new Exception($"Got Close Message ({code}): {reason}"); + await _parent.DisconnectInternal(ex, isUnexpected: !e.WasClean, skipAwait: true); + }; + _webSocket.Log.Output = (e, m) => { }; //Dont let websocket-sharp print to console + _webSocket.Connect(); return TaskHelper.CompletedTask; }