Implemented SignalR scaling using redis. Improved diagnose report generator. Added SignalR debug card in Diagnose page

This commit is contained in:
2025-09-16 08:02:53 +00:00
parent 8573fffaa2
commit efca9cf5d8
15 changed files with 193 additions and 70 deletions

View File

@@ -21,21 +21,16 @@ public class DiagnoseController : Controller
}
[HttpPost]
public async Task Diagnose([FromBody] GenerateDiagnoseRequest request)
public async Task<ActionResult> Diagnose([FromBody] GenerateDiagnoseRequest request)
{
var stream = await DiagnoseService.GenerateDiagnose(request.Providers);
await Results.Stream(
stream,
contentType: "application/zip",
fileDownloadName: "diagnose.zip"
)
.ExecuteAsync(HttpContext);
var stream = await DiagnoseService.GenerateDiagnoseAsync(request.Providers);
return File(stream, "application/zip", "diagnose.zip");
}
[HttpGet("providers")]
public async Task<DiagnoseProvideResponse[]> GetProviders()
public async Task<ActionResult<DiagnoseProvideResponse[]>> GetProviders()
{
return await DiagnoseService.GetProviders();
return await DiagnoseService.GetProvidersAsync();
}
}

View File

@@ -0,0 +1,14 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.SignalR;
namespace Moonlight.ApiServer.Http.Hubs;
[Authorize(Policy = "permissions:admin.system.diagnose")]
public class DiagnoseHub : Hub
{
[HubMethodName("Ping")]
public async Task Ping()
{
await Clients.All.SendAsync("Pong");
}
}