Moved AcSignalRDataSource and TrackingItemHelpers from AyCode.Services.Server to AyCode.Services (namespace updated). Updated all references, usings, and doc cross-refs to new location. Removed orphan SignalR.Core 1.2.0 package and .Server DLL refs from Blazor/Web.Client/Shared projects; WASM AOT build now works. Introduced AcBinaryDeserExecutor for off-pool streaming deserialization, fixing thread pool starvation (see updated protocol docs). Updated test usings and doc tables. No functional changes to DataSource logic. Decision log entry LLMP-DEC-68 documents the change. |
||
|---|---|---|
| .. | ||
| AcLoggerSignalRHub.cs | ||
| AcSessionService.cs | ||
| AcSignalRSendToClientService.cs | ||
| AcSignalRServerProtocolExtensions.cs | ||
| AcWebSignalRHubBase.cs | ||
| ExtensionMethods.cs | ||
| IAcSessionItem.cs | ||
| IAcSignalRHubItemServer.cs | ||
| README.md | ||
README.md
SignalRs
Server-side SignalR hub infrastructure: hub base class, session management, and client broadcast service.
Architecture: For full dispatch flow, tag system, and tech debt documentation see
AyCode.Services/docs/SIGNALR/README.md.
Key Files
Hub
AcWebSignalRHubBase.cs— Abstract hub extendingHub<IAcSignalRHubItemServer>. Manages connection lifecycle, message dispatch viaDynamicMethodRegistry, binary/JSON parameter deserialization. Response methods:ResponseToCaller(),SendMessageToOthers(),SendMessageToUserIdInternal().IAcSignalRHubItemServer.cs— Server hub interfaces:IAcSignalRHubItemServer,IAcSignalRHubServer.AcLoggerSignalRHub.cs— Specialized hub for receiving log items via SignalR (AddLogItem()).
Session & Broadcast
AcSessionService.cs— Generic session manager withConcurrentDictionary<TSessionItemId, TSessionItem>.IAcSessionItem.cs— Session item interface withSessionIdproperty.AcSignalRSendToClientService.cs— Abstract broadcast service:SendMessageToClient(),SendMessageToAllClients(),SendMessageToConnection(),SendMessageToUser().
Data Source
Relocated (LLMP-DEC-68):
AcSignalRDataSource— the client-side real-time collection — moved toAyCode.Services/SignalRs/and is no longer part of this server-side assembly. Full spec:AyCode.Services/docs/SIGNALR_DATASOURCE/README.md.
Utilities
ExtensionMethods.cs—InvokeMethod()— invokes methods and unwrapsTask/Task<T>/ValueTaskresults.
TrackingItemHelpers.cs(deep-clone helpers used by the data source) relocated toAyCode.Services/SignalRs/alongsideAcSignalRDataSource— see LLMP-DEC-68.