Additional disconnection handling
This commit is contained in:
@@ -80,7 +80,10 @@ namespace mROA.Implementation.Frontend
|
|||||||
var eventRequest =
|
var eventRequest =
|
||||||
_representationModule!.GetMessageAsync<DefaultCallRequest>(
|
_representationModule!.GetMessageAsync<DefaultCallRequest>(
|
||||||
messageType: EMessageType.EventRequest, token: token);
|
messageType: EMessageType.EventRequest, token: token);
|
||||||
Task.WaitAny(defaultRequest, cancelRequest, eventRequest);
|
var disconnectRequest =
|
||||||
|
_representationModule!.GetMessageAsync<ClientDisconnect>(
|
||||||
|
messageType: EMessageType.ClientDisconnect, token:token);
|
||||||
|
Task.WaitAny(defaultRequest, cancelRequest, eventRequest, disconnectRequest);
|
||||||
#if TRACE
|
#if TRACE
|
||||||
Console.WriteLine("Request received");
|
Console.WriteLine("Request received");
|
||||||
sw.Restart();
|
sw.Restart();
|
||||||
@@ -96,9 +99,12 @@ namespace mROA.Implementation.Frontend
|
|||||||
{
|
{
|
||||||
HandleCallRequest(tokenSource, defaultRequest.Result);
|
HandleCallRequest(tokenSource, defaultRequest.Result);
|
||||||
}
|
}
|
||||||
else
|
else if(eventRequest.IsCompleted)
|
||||||
{
|
{
|
||||||
HandleEventRequest(tokenSource, eventRequest.Result);
|
HandleEventRequest(tokenSource, eventRequest.Result);
|
||||||
|
}else if (disconnectRequest.IsCompleted)
|
||||||
|
{
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,9 +92,6 @@ namespace mROA.Implementation
|
|||||||
throw new NullReferenceException("Interaction toolkit is not initialized");
|
throw new NullReferenceException("Interaction toolkit is not initialized");
|
||||||
if (_serialization == null)
|
if (_serialization == null)
|
||||||
throw new NullReferenceException("Serialization toolkit is not initialized");
|
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);
|
var serialized = _serialization.Serialize(payload, payloadType);
|
||||||
await _interaction.PostMessageAsync(new NetworkMessageHeader
|
await _interaction.PostMessageAsync(new NetworkMessageHeader
|
||||||
|
|||||||
Reference in New Issue
Block a user