В обычном режиме работает нормально, осталось проверить реконект

This commit is contained in:
2025-03-31 16:48:26 +03:00
parent db110e197c
commit 536e562f49
5 changed files with 32 additions and 27 deletions
@@ -68,11 +68,6 @@ namespace mROA.Implementation.Backend
var client = _tcpListener.AcceptTcpClient();
Console.WriteLine($"Client connected from {client.Client.RemoteEndPoint}");
var interaction = Activator.CreateInstance(_interactionModuleType!) as INextGenerationInteractionModule;
var connectionRequest = interaction.GetNextMessageReceiving().GetAwaiter().GetResult()!;
if (connectionRequest.MessageType == EMessageType.ClientConnect)
{
foreach (var injectableModule in _injectableModules!)
interaction!.Inject(injectableModule);
@@ -80,6 +75,10 @@ namespace mROA.Implementation.Backend
interaction.BaseStream = client.GetStream();
var connectionRequest = interaction.GetNextMessageReceiving().GetAwaiter().GetResult()!;
if (connectionRequest.MessageType == EMessageType.ClientConnect)
{
interaction.PostMessage(new NetworkMessageHeader(_serialization!,
new IdAssignment { Id = -interaction.ConnectionId }));
_hub!.RegisterInteraction(interaction);
+15
View File
@@ -0,0 +1,15 @@
namespace mROA.Implementation
{
public enum EMessageType
{
Unknown,
FinishedCommandExecution,
ExceptionCommandExecution,
CallRequest,
IdAssigning,
CancelRequest,
EventRequest,
ClientRecovery,
ClientConnect
}
}
@@ -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)
{
+10
View File
@@ -0,0 +1,10 @@
using mROA.Implementation.Attributes;
namespace mROA.Implementation
{
public interface INetworkMessage
{
[SerializationIgnore]
public EMessageType MessageType { get; }
}
}
@@ -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
}
}