diff --git a/Moonlight/Features/Servers/Helpers/ServerConsole.cs b/Moonlight/Features/Servers/Helpers/ServerConsole.cs index 87d92f8c..c1165261 100644 --- a/Moonlight/Features/Servers/Helpers/ServerConsole.cs +++ b/Moonlight/Features/Servers/Helpers/ServerConsole.cs @@ -6,7 +6,7 @@ using Moonlight.Features.Servers.Models.Enums; namespace Moonlight.Features.Servers.Helpers; -public class ServerConsole +public class ServerConsole : IDisposable { public SmartEventHandler OnStateChange { get; set; } = new(); public SmartEventHandler OnStatsChange { get; set; } = new(); @@ -127,4 +127,14 @@ public class ServerConsole lock (MessageCache) return MessageCache.ToArray(); } + + public async void Dispose() + { + MessageCache.Clear(); + + if (WebSocket.State == WebSocketState.Open) + await WebsocketStream.Close(); + + WebSocket.Dispose(); + } } \ No newline at end of file diff --git a/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor b/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor index 905cfabc..014d92a7 100644 --- a/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor +++ b/Moonlight/Features/Servers/UI/Layouts/UserLayout.razor @@ -308,7 +308,10 @@ await UpdateTimer.DisposeAsync(); if (Console != null) + { await Console.Close(); + Console.Dispose(); + } } private int GetIndex() diff --git a/Moonlight/Features/Servers/UI/UserViews/Console.razor b/Moonlight/Features/Servers/UI/UserViews/Console.razor index 8197df61..fe50781a 100644 --- a/Moonlight/Features/Servers/UI/UserViews/Console.razor +++ b/Moonlight/Features/Servers/UI/UserViews/Console.razor @@ -79,7 +79,7 @@ foreach (var line in ServerConsole.Messages.TakeLast(50)) { var lineModified = line.Replace("\n", "\n\r"); - text += lineModified; + text += lineModified + "\n\r"; } await Terminal.Write(text);