From 95dbf635117747f90a2a67a9477ea5d2e156659d Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Tue, 8 Apr 2025 11:49:43 +0300 Subject: [PATCH] Additional disconnection handling --- mROA/Implementation/Frontend/RequestExtractor.cs | 10 ++++++++-- mROA/Implementation/RepresentationModule.cs | 3 --- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mROA/Implementation/Frontend/RequestExtractor.cs b/mROA/Implementation/Frontend/RequestExtractor.cs index f794595..fbe9539 100644 --- a/mROA/Implementation/Frontend/RequestExtractor.cs +++ b/mROA/Implementation/Frontend/RequestExtractor.cs @@ -80,7 +80,10 @@ namespace mROA.Implementation.Frontend var eventRequest = _representationModule!.GetMessageAsync( messageType: EMessageType.EventRequest, token: token); - Task.WaitAny(defaultRequest, cancelRequest, eventRequest); + var disconnectRequest = + _representationModule!.GetMessageAsync( + messageType: EMessageType.ClientDisconnect, token:token); + Task.WaitAny(defaultRequest, cancelRequest, eventRequest, disconnectRequest); #if TRACE Console.WriteLine("Request received"); sw.Restart(); @@ -96,9 +99,12 @@ namespace mROA.Implementation.Frontend { HandleCallRequest(tokenSource, defaultRequest.Result); } - else + else if(eventRequest.IsCompleted) { HandleEventRequest(tokenSource, eventRequest.Result); + }else if (disconnectRequest.IsCompleted) + { + break; } } } diff --git a/mROA/Implementation/RepresentationModule.cs b/mROA/Implementation/RepresentationModule.cs index 8b72ccf..6ea6fcd 100644 --- a/mROA/Implementation/RepresentationModule.cs +++ b/mROA/Implementation/RepresentationModule.cs @@ -92,9 +92,6 @@ namespace mROA.Implementation throw new NullReferenceException("Interaction toolkit is not initialized"); if (_serialization == null) throw new NullReferenceException("Serialization toolkit is not initialized"); -#if TRACE - Console.WriteLine($"{DateTime.Now.TimeOfDay} Posting message: {id} - {messageType} to {Id}"); -#endif var serialized = _serialization.Serialize(payload, payloadType); await _interaction.PostMessageAsync(new NetworkMessageHeader