# SignalRs Server-side SignalR hub infrastructure: hub base class, session management, data source with change tracking, and client broadcast service. ## Key Files ### Hub - **`AcWebSignalRHubBase.cs`** — Abstract hub extending `Hub`. Manages connection lifecycle, message dispatch via `DynamicMethodRegistry`, 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 with `ConcurrentDictionary`. - **`IAcSessionItem.cs`** — Session item interface with `SessionId` property. - **`AcSignalRSendToClientService.cs`** — Abstract broadcast service: `SendMessageToClient()`, `SendMessageToAllClients()`, `SendMessageToConnection()`, `SendMessageToUser()`. ### Data Source - **`AcSignalRDataSource.cs`** — Server-side data source implementing `IList` with change tracking (`TrackingItem`, `ChangeTracking`). Supports `LoadDataSource()`, `LoadDataSourceFromResponseData()` with binary/JSON deserialization. ### Utilities - **`ExtensionMethods.cs`** — `InvokeMethod()` — invokes methods and unwraps `Task`/`Task`/`ValueTask` results. - **`TrackingItemHelpers.cs`** — Deep clone helpers: `JsonClone()`, `ReflectionClone()`. --- > **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.