From 536e562f49124cb93450a4538dfd25ee26cfb437 Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofanov Date: Mon, 31 Mar 2025 16:48:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=20=D0=BE=D0=B1=D1=8B=D1=87=D0=BD=D0=BE?= =?UTF-8?q?=D0=BC=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=B5=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82=20=D0=BD=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE,=20=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D1=8C=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D1=80=D0=B5=D0=BA=D0=BE=D0=BD=D0=B5=D0=BA?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Backend/NetworkGatewayModule.cs | 13 ++++++------- mROA/Implementation/EMessageType.cs | 15 +++++++++++++++ .../Frontend/NetworkFrontendBridge.cs | 2 +- mROA/Implementation/INetworkMessage.cs | 10 ++++++++++ mROA/Implementation/NetworkMessageHeader.cs | 19 ------------------- 5 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 mROA/Implementation/EMessageType.cs create mode 100644 mROA/Implementation/INetworkMessage.cs 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