Improved console disposing and closing
This commit is contained in:
parent
fd01787dfb
commit
01729b982d
|
@ -99,6 +99,9 @@ public class ServerConsole : IDisposable
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
if(Cancellation.IsCancellationRequested)
|
||||||
|
break;
|
||||||
|
|
||||||
if (e is WebSocketException)
|
if (e is WebSocketException)
|
||||||
Logger.Warn($"Lost connection to daemon server websocket: {e.Message}");
|
Logger.Warn($"Lost connection to daemon server websocket: {e.Message}");
|
||||||
else
|
else
|
||||||
|
@ -112,7 +115,6 @@ public class ServerConsole : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
await OnDisconnected.Invoke();
|
await OnDisconnected.Invoke();
|
||||||
await WebsocketStream.Close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Close()
|
public async Task Close()
|
||||||
|
@ -120,8 +122,8 @@ public class ServerConsole : IDisposable
|
||||||
if(!Cancellation.IsCancellationRequested)
|
if(!Cancellation.IsCancellationRequested)
|
||||||
Cancellation.Cancel();
|
Cancellation.Cancel();
|
||||||
|
|
||||||
if(WebsocketStream != null)
|
if (WebSocket.State == WebSocketState.Open)
|
||||||
await WebsocketStream.Close();
|
await WebSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, null, CancellationToken.None);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string[] GetMessageCache()
|
private string[] GetMessageCache()
|
||||||
|
@ -134,9 +136,15 @@ public class ServerConsole : IDisposable
|
||||||
{
|
{
|
||||||
MessageCache.Clear();
|
MessageCache.Clear();
|
||||||
|
|
||||||
|
await OnDisconnected.ClearSubscribers();
|
||||||
|
await OnStateChange.ClearSubscribers();
|
||||||
|
await OnStatsChange.ClearSubscribers();
|
||||||
|
await OnNewMessage.ClearSubscribers();
|
||||||
|
|
||||||
if (WebSocket.State == WebSocketState.Open)
|
if (WebSocket.State == WebSocketState.Open)
|
||||||
await WebsocketStream.Close();
|
await WebSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, null, CancellationToken.None);
|
||||||
|
|
||||||
WebSocket.Dispose();
|
WebSocket.Dispose();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue