diff --git a/Moonlight/App/Helpers/Wings/WingsConsole.cs b/Moonlight/App/Helpers/Wings/WingsConsole.cs index bb6edfbb..c51910a8 100644 --- a/Moonlight/App/Helpers/Wings/WingsConsole.cs +++ b/Moonlight/App/Helpers/Wings/WingsConsole.cs @@ -142,18 +142,28 @@ public class WingsConsole : IDisposable switch (eventData.Event) { case "jwt error": - await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, "Jwt error detected", - CancellationToken.None); + if (WebSocket != null) + { + if (WebSocket.State == WebSocketState.Connecting || WebSocket.State == WebSocketState.Open) + await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, null, CancellationToken.None); + + WebSocket.Dispose(); + } await UpdateServerState(ServerState.Offline); await UpdateConsoleState(ConsoleState.Disconnected); - await SaveMessage("Received a jwt error", true); + await SaveMessage("Received a jwt error. Disconnected", true); break; case "token expired": - await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, "Jwt error detected", - CancellationToken.None); + if (WebSocket != null) + { + if (WebSocket.State == WebSocketState.Connecting || WebSocket.State == WebSocketState.Open) + await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, null, CancellationToken.None); + + WebSocket.Dispose(); + } await UpdateServerState(ServerState.Offline); await UpdateConsoleState(ConsoleState.Disconnected); @@ -346,6 +356,7 @@ public class WingsConsole : IDisposable public async Task Disconnect() { Disconnecting = true; + Messages.Clear(); if (WebSocket != null) { @@ -362,6 +373,7 @@ public class WingsConsole : IDisposable public void Dispose() { Disconnecting = true; + Messages.Clear(); if (WebSocket != null) {