From 343e527fb6e7f4aff201c4436dbb13d4cbf6cca9 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Sun, 4 Jun 2023 20:56:47 +0200 Subject: [PATCH 1/2] Added message cache clear for console streaming --- Moonlight/App/Helpers/Wings/WingsConsole.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Moonlight/App/Helpers/Wings/WingsConsole.cs b/Moonlight/App/Helpers/Wings/WingsConsole.cs index bb6edfb..a15bbfc 100644 --- a/Moonlight/App/Helpers/Wings/WingsConsole.cs +++ b/Moonlight/App/Helpers/Wings/WingsConsole.cs @@ -346,6 +346,7 @@ public class WingsConsole : IDisposable public async Task Disconnect() { Disconnecting = true; + Messages.Clear(); if (WebSocket != null) { @@ -362,6 +363,7 @@ public class WingsConsole : IDisposable public void Dispose() { Disconnecting = true; + Messages.Clear(); if (WebSocket != null) { From 233c304b3c6560951a0e5635143c1627aa162718 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Sun, 4 Jun 2023 21:41:15 +0200 Subject: [PATCH 2/2] Fixed error when closing a failed websocket connection --- Moonlight/App/Helpers/Wings/WingsConsole.cs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Moonlight/App/Helpers/Wings/WingsConsole.cs b/Moonlight/App/Helpers/Wings/WingsConsole.cs index a15bbfc..c51910a 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);