Add AcBinaryHubProtocol to SignalR for binary transport
Registered custom AcBinaryHubProtocol as a singleton IHubProtocol in PluginNopStartup.cs to enable efficient binary messaging (via AcBinarySerializer) and eliminate JSON/Base64 overhead. Updated SIGNALR_ENDPOINTS.md to document the new protocol, noting WebSocket (TransferFormat.Binary) requirement and affected hubs (DevAdminSignalRHub, LoggerSignalRHub). Explicitly set StatefulReconnectBufferSize to 30 MB in both code and documentation.
This commit is contained in:
parent
6c776a97ca
commit
d68f060e66
|
|
@ -1,6 +1,7 @@
|
||||||
//using AyCode.Core.Loggers;
|
//using AyCode.Core.Loggers;
|
||||||
|
|
||||||
using AyCode.Core.Loggers;
|
using AyCode.Core.Loggers;
|
||||||
|
using AyCode.Services.SignalRs;
|
||||||
using DevExpress.AspNetCore;
|
using DevExpress.AspNetCore;
|
||||||
using FruitBank.Common;
|
using FruitBank.Common;
|
||||||
using FruitBank.Common.Interfaces;
|
using FruitBank.Common.Interfaces;
|
||||||
|
|
@ -13,6 +14,7 @@ using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Http.Connections;
|
using Microsoft.AspNetCore.Http.Connections;
|
||||||
using Microsoft.AspNetCore.Mvc.Razor;
|
using Microsoft.AspNetCore.Mvc.Razor;
|
||||||
using Microsoft.AspNetCore.SignalR;
|
using Microsoft.AspNetCore.SignalR;
|
||||||
|
using Microsoft.AspNetCore.SignalR.Protocol;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Nop.Core.Domain.Orders;
|
using Nop.Core.Domain.Orders;
|
||||||
|
|
@ -149,6 +151,8 @@ public class PluginNopStartup : INopStartup
|
||||||
hubOptions.StatefulReconnectBufferSize = 30_000_000; //30MB; //default: 100,000 bytes;
|
hubOptions.StatefulReconnectBufferSize = 30_000_000; //30MB; //default: 100,000 bytes;
|
||||||
//hubOptions.HandshakeTimeout = TimeSpan.FromSeconds(15); //default timeout is 15 seconds
|
//hubOptions.HandshakeTimeout = TimeSpan.FromSeconds(15); //default timeout is 15 seconds
|
||||||
});
|
});
|
||||||
|
|
||||||
|
services.AddSingleton<IHubProtocol>(new AcBinaryHubProtocol());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,10 @@ Configured in `PluginNopStartup`:
|
||||||
| ClientTimeoutInterval | 30 seconds |
|
| ClientTimeoutInterval | 30 seconds |
|
||||||
| MaximumReceiveMessageSize | 30 MB |
|
| MaximumReceiveMessageSize | 30 MB |
|
||||||
| EnableDetailedErrors | true |
|
| EnableDetailedErrors | true |
|
||||||
|
| StatefulReconnectBufferSize | 30 MB |
|
||||||
|
| **HubProtocol** | **`AcBinaryHubProtocol`** (singleton `IHubProtocol`) |
|
||||||
|
|
||||||
|
**Wire protocol:** `AcBinaryHubProtocol` (`AyCode.Services.SignalRs`, from `AyCode.Services.dll`) — custom binary `IHubProtocol` using `AcBinarySerializer`. Eliminates JSON+Base64 overhead. Requires `TransferFormat.Binary` → WebSocket transport only. Protocol name: `"acbinary"`. Registered as `services.AddSingleton<IHubProtocol>(new AcBinaryHubProtocol())` after `AddSignalR()`.
|
||||||
|
|
||||||
Hubs registered: `DevAdminSignalRHub`, `LoggerSignalRHub` (from AyCode.Core.Server).
|
Hubs registered: `DevAdminSignalRHub`, `LoggerSignalRHub` (from AyCode.Core.Server).
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue