using Microsoft.AspNetCore.Mvc; using SameBeat.Api.Monitoring; namespace SameBeat.Api.Controllers; /// /// Podstawowa diagnostyka dla panelu hosta (ETAP 8). Trasa zaczyna sie od "api/host", wiec jest /// automatycznie chroniona [Authorize] przez KonwencjaAutoryzacjiHosta -- tak samo jak inne kontrolery /// hosta. /// /// Backend NIE mierzy jakosci polaczenia WebRTC (opoznienia, utrata pakietow, bitrate) -- to robi /// klient przez statystyki LiveKit SDK po swojej stronie. Ten endpoint daje hostowi wylacznie /// podstawowy, "ile osob jest podlaczonych" stan SignalR z LicznikPolaczenSignalR (licznik w pamieci /// procesu, wystarczajacy dla MVP jednej instancji backendu -- patrz komentarz w tej klasie). /// [ApiController] [Route("api/host/diagnostyka")] public class HostDiagnosticsController : ControllerBase { private readonly LicznikPolaczenSignalR _licznikPolaczen; public HostDiagnosticsController(LicznikPolaczenSignalR licznikPolaczen) { _licznikPolaczen = licznikPolaczen; } [HttpGet] public IActionResult Pobierz() { return Ok(new { polaczeniaSignalR = new { widzowie = _licznikPolaczen.LiczbaPolaczenWidzowie, host = _licznikPolaczen.LiczbaPolaczenHost }, czasUtc = DateTime.UtcNow }); } }