Fix error handling to not spam the console
This commit is contained in:
parent
7aca89139e
commit
716cea64e9
|
@ -100,12 +100,14 @@ namespace Ooui.AspNetCore
|
|||
var token = CancellationToken.None;
|
||||
System.Net.WebSockets.WebSocket webSocket = null;
|
||||
|
||||
void Error (string m, Exception e) => activeSession?.Logger?.LogWarning (e, m);
|
||||
|
||||
//
|
||||
// Create a new session and let it handle everything from here
|
||||
//
|
||||
try {
|
||||
webSocket = await context.WebSockets.AcceptWebSocketAsync ("ooui").ConfigureAwait (false);
|
||||
var session = new Ooui.WebSocketSession (webSocket, activeSession.Element, activeSession.DisposeElementAfterSession, w, h, token);
|
||||
var session = new Ooui.WebSocketSession (webSocket, activeSession.Element, activeSession.DisposeElementAfterSession, w, h, Error, token);
|
||||
await session.RunAsync ().ConfigureAwait (false);
|
||||
}
|
||||
catch (System.Net.WebSockets.WebSocketException ex) when (ex.WebSocketErrorCode == System.Net.WebSockets.WebSocketError.ConnectionClosedPrematurely) {
|
||||
|
|
|
@ -14,9 +14,11 @@ namespace Ooui
|
|||
protected readonly List<Message> queuedMessages = new List<Message> ();
|
||||
|
||||
protected readonly bool disposeElementAfterSession;
|
||||
readonly Action<string, Exception> errorLogger;
|
||||
|
||||
public Session (Element element, bool disposeElementAfterSession, double initialWidth, double initialHeight)
|
||||
public Session (Element element, bool disposeElementAfterSession, double initialWidth, double initialHeight, Action<string, Exception> errorLogger)
|
||||
{
|
||||
this.errorLogger = errorLogger;
|
||||
this.element = element;
|
||||
this.disposeElementAfterSession = disposeElementAfterSession;
|
||||
this.initialWidth = initialWidth;
|
||||
|
@ -85,14 +87,7 @@ namespace Ooui
|
|||
|
||||
protected void Error (string message, Exception ex)
|
||||
{
|
||||
Console.ForegroundColor = ConsoleColor.Red;
|
||||
Console.WriteLine ("{0}: {1}", message, ex);
|
||||
Console.ResetColor ();
|
||||
}
|
||||
|
||||
protected void Info (string message)
|
||||
{
|
||||
Console.WriteLine (message);
|
||||
errorLogger?.Invoke (message, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -573,7 +573,7 @@ namespace Ooui
|
|||
// Create a new session and let it handle everything from here
|
||||
//
|
||||
try {
|
||||
var session = new WebSocketSession (webSocket, element, disposeElementWhenDone, w, h, serverToken);
|
||||
var session = new WebSocketSession (webSocket, element, disposeElementWhenDone, w, h, Error, serverToken);
|
||||
await session.RunAsync ().ConfigureAwait (false);
|
||||
}
|
||||
catch (System.Net.WebSockets.WebSocketException ex) when (ex.WebSocketErrorCode == System.Net.WebSockets.WebSocketError.ConnectionClosedPrematurely) {
|
||||
|
@ -616,7 +616,7 @@ namespace Ooui
|
|||
var ops = initialSize.Split (' ');
|
||||
var initialWidth = double.Parse (ops[0]);
|
||||
var initialHeight = double.Parse (ops[1]);
|
||||
var g = new WebAssemblySession (sessionId, element, disposeElementWhenDone, initialWidth, initialHeight);
|
||||
var g = new WebAssemblySession (sessionId, element, disposeElementWhenDone, initialWidth, initialHeight, Error);
|
||||
lock (globalElementSessions) {
|
||||
globalElementSessions[sessionId] = g;
|
||||
}
|
||||
|
|
|
@ -9,8 +9,8 @@ namespace Ooui
|
|||
readonly string id;
|
||||
readonly Action<Message> handleElementMessageSent;
|
||||
|
||||
public WebAssemblySession (string id, Element element, bool disposeElementAfterSession, double initialWidth, double initialHeight)
|
||||
: base (element, disposeElementAfterSession, initialWidth, initialHeight)
|
||||
public WebAssemblySession (string id, Element element, bool disposeElementAfterSession, double initialWidth, double initialHeight, Action<string, Exception> errorLogger)
|
||||
: base (element, disposeElementAfterSession, initialWidth, initialHeight, errorLogger)
|
||||
{
|
||||
this.id = id;
|
||||
handleElementMessageSent = QueueMessage;
|
||||
|
|
|
@ -23,8 +23,8 @@ namespace Ooui
|
|||
DateTime lastTransmitTime = DateTime.MinValue;
|
||||
readonly TimeSpan throttleInterval = TimeSpan.FromSeconds (1.0 / UI.MaxFps);
|
||||
|
||||
public WebSocketSession (WebSocket webSocket, Element element, bool disposeElementAfterSession, double initialWidth, double initialHeight, CancellationToken serverToken)
|
||||
: base (element, disposeElementAfterSession, initialWidth, initialHeight)
|
||||
public WebSocketSession (WebSocket webSocket, Element element, bool disposeElementAfterSession, double initialWidth, double initialHeight, Action<string, Exception> errorLogger, CancellationToken serverToken)
|
||||
: base (element, disposeElementAfterSession, initialWidth, initialHeight, errorLogger)
|
||||
{
|
||||
this.webSocket = webSocket;
|
||||
|
||||
|
|
Loading…
Reference in New Issue