Refactor AcBinaryHubProtocol for thread safety - Removed shared _currentHeaderContext; header context is now passed as a parameter through Parse* and ReadArguments/ReadSingleArgument methods, and stored per-binder for chunked messages. - Updated AyCodeBinaryHubProtocol to use the new header context flow for type resolution and argument deserialization. - Added concurrency tests to verify protocol instance safety under multi-threaded use and prevent state corruption or type resolution races. - Improved documentation and comments to clarify the stateless, concurrency-safe design. |
||
|---|---|---|
| .. | ||
| Loggers | ||
| Logins | ||
| SignalRs | ||
| docs | ||
| AyCode.Services.csproj | ||
| README.md | ||
README.md
AyCode.Services
@project { type = "framework" }
Shared service implementations: SignalR communication (custom binary protocol), login services, and remote log writers.
Documentation
| Document | Topic |
|---|---|
SIGNALR/README.md |
Client-side SignalR transport (tags, wire protocol, req/resp flow) |
SIGNALR_BINARY_PROTOCOL/README.md |
Binary-over-SignalR wire format, chunked framing |
LOGGING/README.md |
Remote log writers (HTTP, browser console, SignalR) |
Folder Structure
| Folder | Purpose |
|---|---|
Loggers/ |
Remote log writers: HTTP, browser console (JS interop), SignalR |
Logins/ |
Base and client-side login service implementations |
SignalRs/ |
Custom binary SignalR protocol, client base, message tagging, serialization |
Dependencies
| Dependency | Purpose |
|---|---|
AyCode.Core |
Core types, serializers, compression |
AyCode.Entities |
Entity base classes |
AyCode.Interfaces |
Service contracts |
AyCode.Models |
DTOs |
Microsoft.AspNetCore.SignalR.Client |
SignalR client |
Microsoft.AspNetCore.SignalR.Common |
IHubProtocol for custom binary protocol |
Microsoft.AspNetCore.Authentication.JwtBearer |
JWT authentication |