using Microsoft.AspNetCore.SignalR;
namespace Infrastructure.Logging;
///
/// SignalR hub for streaming log messages to connected clients
///
public class LogHub : Hub
{
private readonly SignalRLogSink _logSink;
public LogHub(SignalRLogSink logSink)
{
_logSink = logSink;
}
///
/// Allows a client to request all recent logs from the buffer
///
public async Task RequestRecentLogs()
{
foreach (var logEvent in _logSink.GetRecentLogs())
{
await Clients.Caller.SendAsync("ReceiveLog", logEvent);
}
}
}