В обычном режиме работает нормально, осталось проверить реконект
This commit is contained in:
@@ -68,18 +68,17 @@ namespace mROA.Implementation.Backend
|
|||||||
var client = _tcpListener.AcceptTcpClient();
|
var client = _tcpListener.AcceptTcpClient();
|
||||||
Console.WriteLine($"Client connected from {client.Client.RemoteEndPoint}");
|
Console.WriteLine($"Client connected from {client.Client.RemoteEndPoint}");
|
||||||
var interaction = Activator.CreateInstance(_interactionModuleType!) as INextGenerationInteractionModule;
|
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()!;
|
var connectionRequest = interaction.GetNextMessageReceiving().GetAwaiter().GetResult()!;
|
||||||
|
|
||||||
if (connectionRequest.MessageType == EMessageType.ClientConnect)
|
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!,
|
interaction.PostMessage(new NetworkMessageHeader(_serialization!,
|
||||||
new IdAssignment { Id = -interaction.ConnectionId }));
|
new IdAssignment { Id = -interaction.ConnectionId }));
|
||||||
_hub!.RegisterInteraction(interaction);
|
_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);
|
_tcpClient.Connect(_ipEndPoint);
|
||||||
_interactionModule.BaseStream = _tcpClient.GetStream();
|
_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();
|
var welcomeMessage = _interactionModule.GetNextMessageReceiving().GetAwaiter().GetResult();
|
||||||
if (welcomeMessage.MessageType != EMessageType.IdAssigning)
|
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;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using mROA.Abstract;
|
using mROA.Abstract;
|
||||||
using mROA.Implementation.Attributes;
|
|
||||||
|
|
||||||
// ReSharper disable UnusedMember.Global
|
// ReSharper disable UnusedMember.Global
|
||||||
|
|
||||||
namespace mROA.Implementation
|
namespace mROA.Implementation
|
||||||
{
|
{
|
||||||
public interface INetworkMessage
|
|
||||||
{
|
|
||||||
[SerializationIgnore]
|
|
||||||
public EMessageType MessageType { get; }
|
|
||||||
}
|
|
||||||
public class NetworkMessageHeader
|
public class NetworkMessageHeader
|
||||||
{
|
{
|
||||||
public NetworkMessageHeader()
|
public NetworkMessageHeader()
|
||||||
@@ -32,17 +26,4 @@ namespace mROA.Implementation
|
|||||||
|
|
||||||
public byte[] Data { get; set; }
|
public byte[] Data { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum EMessageType
|
|
||||||
{
|
|
||||||
Unknown,
|
|
||||||
FinishedCommandExecution,
|
|
||||||
ExceptionCommandExecution,
|
|
||||||
CallRequest,
|
|
||||||
IdAssigning,
|
|
||||||
CancelRequest,
|
|
||||||
EventRequest,
|
|
||||||
ClientRecovery,
|
|
||||||
ClientConnect
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user