From fa0565e699e119fddd1b4ef2c707d564497f0bdc Mon Sep 17 00:00:00 2001 From: Mitrofanov Mikhail Date: Sat, 31 May 2025 19:46:29 +0300 Subject: [PATCH] Return of ping pong and ToString for NetworkMessageHeader --- Example.Shared/Example.Shared.csproj | 2 +- mROA.Cbor/CborSerializationToolkit.cs | 4 ++-- mROA.Cbor/mROA.Cbor.csproj | 2 +- mROA/Abstract/IContextualSerializationToolKit.cs | 2 +- mROA/Implementation/ChannelInteractionModule.cs | 5 +++++ mROA/Implementation/NetworkMessageHeader.cs | 5 +++++ mROA/mROA.csproj | 2 +- 7 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Example.Shared/Example.Shared.csproj b/Example.Shared/Example.Shared.csproj index 98d21fd..40a196f 100644 --- a/Example.Shared/Example.Shared.csproj +++ b/Example.Shared/Example.Shared.csproj @@ -1,7 +1,7 @@  - net9.0 + netstandard2.1 enable 9 diff --git a/mROA.Cbor/CborSerializationToolkit.cs b/mROA.Cbor/CborSerializationToolkit.cs index 5fc81a5..a638eb8 100644 --- a/mROA.Cbor/CborSerializationToolkit.cs +++ b/mROA.Cbor/CborSerializationToolkit.cs @@ -19,11 +19,11 @@ namespace mROA.Cbor return writer.Encode(); } - public void Serialize(object objectToSerialize, Span destination, IEndPointContext context) + public int Serialize(object objectToSerialize, Span destination, IEndPointContext context) { var writer = new CborWriter(); WriteData(objectToSerialize, writer, context); - writer.Encode(destination); + return writer.Encode(destination); } public T Deserialize(byte[] rawData, IEndPointContext? context) diff --git a/mROA.Cbor/mROA.Cbor.csproj b/mROA.Cbor/mROA.Cbor.csproj index 1950f08..47df304 100644 --- a/mROA.Cbor/mROA.Cbor.csproj +++ b/mROA.Cbor/mROA.Cbor.csproj @@ -4,7 +4,7 @@ netstandard2.1 enable true - 2.0.2 + 2.0.3 9 diff --git a/mROA/Abstract/IContextualSerializationToolKit.cs b/mROA/Abstract/IContextualSerializationToolKit.cs index 6cfa9ac..9cbcb4f 100644 --- a/mROA/Abstract/IContextualSerializationToolKit.cs +++ b/mROA/Abstract/IContextualSerializationToolKit.cs @@ -5,7 +5,7 @@ namespace mROA.Abstract public interface IContextualSerializationToolKit : IInjectableModule { byte[] Serialize(object objectToSerialize, IEndPointContext? context); - void Serialize(object objectToSerialize, Span destination, IEndPointContext? context); + int Serialize(object objectToSerialize, Span destination, IEndPointContext? context); T Deserialize(byte[] rawData, IEndPointContext? context); object? Deserialize(byte[] rawData, Type type, IEndPointContext? context); T Deserialize(ReadOnlyMemory rawMemory, IEndPointContext? context); diff --git a/mROA/Implementation/ChannelInteractionModule.cs b/mROA/Implementation/ChannelInteractionModule.cs index c99284d..f6ac785 100644 --- a/mROA/Implementation/ChannelInteractionModule.cs +++ b/mROA/Implementation/ChannelInteractionModule.cs @@ -121,6 +121,11 @@ namespace mROA.Implementation { await PostMessageAsync( new NetworkMessageHeader(_serialization!, new ClientRecovery(Math.Abs(ConnectionId)), _context)); + await ReceiveChanel.Reader.ReadAsync(); + } + else + { + await _trustedWriter.WriteAsync(new NetworkMessageHeader()); } diff --git a/mROA/Implementation/NetworkMessageHeader.cs b/mROA/Implementation/NetworkMessageHeader.cs index 0a0a271..93894a7 100644 --- a/mROA/Implementation/NetworkMessageHeader.cs +++ b/mROA/Implementation/NetworkMessageHeader.cs @@ -39,5 +39,10 @@ namespace mROA.Implementation public EMessageType MessageType { get; set; } public byte[] Data { get; set; } + + public override string ToString() + { + return $" {Id}:{MessageType} [{Data.Length}]"; + } } } \ No newline at end of file diff --git a/mROA/mROA.csproj b/mROA/mROA.csproj index 643043e..3b037dc 100644 --- a/mROA/mROA.csproj +++ b/mROA/mROA.csproj @@ -4,7 +4,7 @@ netstandard2.1 enable mROA - 2.0.3 + 2.0.5 YaslePoy Fast and easy RPC with contex https://github.com/YaslePoy/mROA