В обычном режиме работает нормально, осталось проверить реконект
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user