Added comprehensive docs for SignalR tag-based dispatch (docs/SIGNALR_ARCHITECTURE.md), including message flow, tag system, dynamic method registry, and tech debt (JSON-in-Binary). Updated all related READMEs, glossaries, and conventions to reference this architecture and clarify grid infrastructure (MgGridBase, FruitBankGridBase) and external dependency locations (AyCode.Core, AyCode.Blazor, Mango.Nop Libraries, FruitBank Plugin). Synchronized solution items and copilot-instructions. Improves discoverability, enforces conventions, and clarifies tech debt for all developers. |
||
|---|---|---|
| .. | ||
| AcLoggerSignalRHub.cs | ||
| AcSessionService.cs | ||
| AcSignalRDataSource.cs | ||
| AcSignalRSendToClientService.cs | ||
| AcWebSignalRHubBase.cs | ||
| ExtensionMethods.cs | ||
| IAcSessionItem.cs | ||
| IAcSignalRHubItemServer.cs | ||
| README.md | ||
| TrackingItemHelpers.cs | ||
README.md
SignalRs
Server-side SignalR hub infrastructure: hub base class, session management, data source with change tracking, and client broadcast service.
Architecture: For full dispatch flow, tag system, and tech debt documentation see
docs/SIGNALR_ARCHITECTURE.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
AcSignalRDataSource.cs— Server-side data source implementingIList<T>with change tracking (TrackingItem<T, TId>,ChangeTracking<T, TId>). SupportsLoadDataSource(),LoadDataSourceFromResponseData()with binary/JSON deserialization.
Utilities
ExtensionMethods.cs—InvokeMethod()— invokes methods and unwrapsTask/Task<T>/ValueTaskresults.TrackingItemHelpers.cs— Deep clone helpers:JsonClone<T>(),ReflectionClone<T>().