diff --git a/mROA/Implementation/Backend/NetworkGatewayModule.cs b/mROA/Implementation/Backend/NetworkGatewayModule.cs index 43f82c6..d33b4d0 100644 --- a/mROA/Implementation/Backend/NetworkGatewayModule.cs +++ b/mROA/Implementation/Backend/NetworkGatewayModule.cs @@ -68,18 +68,17 @@ namespace mROA.Implementation.Backend var client = _tcpListener.AcceptTcpClient(); Console.WriteLine($"Client connected from {client.Client.RemoteEndPoint}"); var interaction = Activator.CreateInstance(_interactionModuleType!) as INextGenerationInteractionModule; + foreach (var injectableModule in _injectableModules!) + interaction!.Inject(injectableModule); + interaction!.Inject(_serialization); + + interaction.BaseStream = client.GetStream(); + var connectionRequest = interaction.GetNextMessageReceiving().GetAwaiter().GetResult()!; if (connectionRequest.MessageType == EMessageType.ClientConnect) { - foreach (var injectableModule in _injectableModules!) - interaction!.Inject(injectableModule); - - interaction!.Inject(_serialization); - - interaction.BaseStream = client.GetStream(); - interaction.PostMessage(new NetworkMessageHeader(_serialization!, new IdAssignment { Id = -interaction.ConnectionId })); _hub!.RegisterInteraction(interaction); diff --git a/mROA/Implementation/EMessageType.cs b/mROA/Implementation/EMessageType.cs new file mode 100644 index 0000000..8bb556b --- /dev/null +++ b/mROA/Implementation/EMessageType.cs @@ -0,0 +1,15 @@ +namespace mROA.Implementation +{ + public enum EMessageType + { + Unknown, + FinishedCommandExecution, + ExceptionCommandExecution, + CallRequest, + IdAssigning, + CancelRequest, + EventRequest, + ClientRecovery, + ClientConnect + } +} \ No newline at end of file diff --git a/mROA/Implementation/Frontend/NetworkFrontendBridge.cs b/mROA/Implementation/Frontend/NetworkFrontendBridge.cs index 2554c6d..2fb5cc6 100644 --- a/mROA/Implementation/Frontend/NetworkFrontendBridge.cs +++ b/mROA/Implementation/Frontend/NetworkFrontendBridge.cs @@ -41,7 +41,7 @@ namespace mROA.Implementation.Frontend _tcpClient.Connect(_ipEndPoint); _interactionModule.BaseStream = _tcpClient.GetStream(); - _interactionModule.PostMessage(new NetworkMessageHeader(_serialization, new ClientConnect())).Wait(); + _ = _interactionModule.PostMessage(new NetworkMessageHeader(_serialization, new ClientConnect())); var welcomeMessage = _interactionModule.GetNextMessageReceiving().GetAwaiter().GetResult(); if (welcomeMessage.MessageType != EMessageType.IdAssigning) { diff --git a/mROA/Implementation/INetworkMessage.cs b/mROA/Implementation/INetworkMessage.cs new file mode 100644 index 0000000..38b0b73 --- /dev/null +++ b/mROA/Implementation/INetworkMessage.cs @@ -0,0 +1,10 @@ +using mROA.Implementation.Attributes; + +namespace mROA.Implementation +{ + public interface INetworkMessage + { + [SerializationIgnore] + public EMessageType MessageType { get; } + } +} \ No newline at end of file diff --git a/mROA/Implementation/NetworkMessageHeader.cs b/mROA/Implementation/NetworkMessageHeader.cs index fcc04ac..8efc141 100644 --- a/mROA/Implementation/NetworkMessageHeader.cs +++ b/mROA/Implementation/NetworkMessageHeader.cs @@ -1,17 +1,11 @@ using System; using System.Text.Json.Serialization; using mROA.Abstract; -using mROA.Implementation.Attributes; // ReSharper disable UnusedMember.Global namespace mROA.Implementation { - public interface INetworkMessage - { - [SerializationIgnore] - public EMessageType MessageType { get; } - } public class NetworkMessageHeader { public NetworkMessageHeader() @@ -32,17 +26,4 @@ namespace mROA.Implementation public byte[] Data { get; set; } } - - public enum EMessageType - { - Unknown, - FinishedCommandExecution, - ExceptionCommandExecution, - CallRequest, - IdAssigning, - CancelRequest, - EventRequest, - ClientRecovery, - ClientConnect - } } \ No newline at end of file