AyCode.Core/AyCode.Services.Server/SignalRs
Loretta fbe142c6f3 Add detailed README.md files for all projects and folders
Added comprehensive README.md documentation to every project and subfolder in the solution. Each README describes the purpose, key files, structure, dependencies, and design patterns for its area. This improves codebase navigability and maintainability, and includes a maintenance note to keep docs in sync with future code changes.
2026-03-28 17:24:56 +01:00
..
AcLoggerSignalRHub.cs Implement SignalRLoggerClient 2025-09-02 11:48:05 +02:00
AcSessionService.cs Add SignalR common services and dependencies 2025-08-31 12:39:47 +02:00
AcSignalRDataSource.cs Refactor serializer options, string fast paths & analysis 2026-01-25 16:40:40 +01:00
AcSignalRSendToClientService.cs Switch to binary serialization, update compression to GZip 2026-03-06 14:26:48 +01:00
AcWebSignalRHubBase.cs Refactor serializer options, string fast paths & analysis 2026-01-25 16:40:40 +01:00
ExtensionMethods.cs Refactor JSON/SignalR infra; add full test & benchmark suite 2025-12-11 21:25:50 +01:00
IAcSessionItem.cs Add SignalR common services and dependencies 2025-08-31 12:39:47 +02:00
IAcSignalRHubItemServer.cs improvements, fixes, etc 2024-05-25 22:16:22 +02:00
README.md Add detailed README.md files for all projects and folders 2026-03-28 17:24:56 +01:00
TrackingItemHelpers.cs Add SignalR common services and dependencies 2025-08-31 12:39:47 +02:00

README.md

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<IAcSignalRHubItemServer>. 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<TSessionItemId, TSessionItem>.
  • 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<T> with change tracking (TrackingItem<T, TId>, ChangeTracking<T, TId>). Supports LoadDataSource(), LoadDataSourceFromResponseData() with binary/JSON deserialization.

Utilities

  • ExtensionMethods.csInvokeMethod() — invokes methods and unwraps Task/Task<T>/ValueTask results.
  • TrackingItemHelpers.cs — Deep clone helpers: JsonClone<T>(), ReflectionClone<T>().

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.