Refactor SignalR binary protocol for extensibility

- Move SignalParams-aware deserialization logic from AcBinaryHubProtocol to new AyCodeBinaryHubProtocol, enabling project-specific customization.
- Make key deserialization and helper methods in AcBinaryHubProtocol protected and virtual for easier extension.
- Improve byte[] handling to distinguish between AcBinary-serialized and raw data.
- Remove diagnostic serialization verification from the base protocol.
- Update DI registration to use AyCodeBinaryHubProtocol with configurable options.
- Adjust client code to support object-based response data and raw byte handling.
- Comment out SignalResponseDataMessage diagnostic logger in Program.cs.
This commit is contained in:
Loretta 2026-04-09 08:12:50 +02:00
parent 26b40cf7a1
commit 10f325cc26
2 changed files with 3 additions and 3 deletions

View File

@ -43,13 +43,13 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
/// </summary> /// </summary>
public event Func<int, SignalResponseDataMessage?, Task> OnMessageReceived = null!; public event Func<int, SignalResponseDataMessage?, Task> OnMessageReceived = null!;
protected override async Task MessageReceived(int messageTag, SignalParams signalParams, SignalData data) protected override async Task MessageReceived(int messageTag, SignalParams signalParams, object data)
{ {
var responseDataMessage = new SignalResponseDataMessage var responseDataMessage = new SignalResponseDataMessage
{ {
Status = signalParams.Status, Status = signalParams.Status,
DataSerializerType = AcSerializerType.Binary, DataSerializerType = AcSerializerType.Binary,
ResponseData = data RawResponseData = data
}; };
await OnMessageReceived(messageTag, responseDataMessage); await OnMessageReceived(messageTag, responseDataMessage);
} }

View File

@ -34,7 +34,7 @@ builder.Services.AddSingleton<IAcLogWriterClientBase, SignaRClientLogItemWriter>
#if DEBUG #if DEBUG
if (FruitBankConstClient.SignalRSerializerDiagnosticLog) if (FruitBankConstClient.SignalRSerializerDiagnosticLog)
{ {
SignalResponseDataMessage.DiagnosticLogger = message => { Console.WriteLine(message); }; //SignalResponseDataMessage.DiagnosticLogger = message => { Console.WriteLine(message); };
} }
#endif #endif