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:
parent
26b40cf7a1
commit
10f325cc26
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue