using System; using System.Threading.Tasks; using FinlyticCore.Models.Auth; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.Logging; namespace FinlyticBackend.Hubs; /// /// Real-time SignalR WebSocket & Server-Sent Events (SSE) Hub streaming live trade proposals & updates to Web and Mobile clients. /// public class TradeRealtimeHub : Hub { private readonly ILogger _logger; public TradeRealtimeHub(ILogger logger) { _logger = logger; } public override async Task OnConnectedAsync() { _logger.LogInformation("Real-time SignalR Client connected: ConnectionId={ConnectionId}, User={User}", Context.ConnectionId, Context.User?.Identity?.Name ?? "Anonymous"); await base.OnConnectedAsync(); } public override async Task OnDisconnectedAsync(Exception? exception) { _logger.LogInformation("Real-time SignalR Client disconnected: ConnectionId={ConnectionId}", Context.ConnectionId); await base.OnDisconnectedAsync(exception); } }