Increase Blazor hub message limit

This commit is contained in:
2026-04-01 22:50:24 +02:00
parent c1236eec63
commit 1c8cb71cb4
2 changed files with 27 additions and 2 deletions

View File

@@ -1,3 +1,6 @@
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Options;
namespace RpgRoller.Tests;
public sealed class FrontendHostTests : ApiTestBase
@@ -18,4 +21,24 @@ public sealed class FrontendHostTests : ApiTestBase
Assert.Contains("_framework/blazor.web.js", html);
Assert.Contains("Connecting...", html);
}
[Fact]
public void BlazorHub_AllowsLargerInteropPayloads()
{
using var factory = CreateFactory();
var componentHubType = Type.GetType("Microsoft.AspNetCore.Components.Server.ComponentHub, Microsoft.AspNetCore.Components.Server");
Assert.NotNull(componentHubType);
var hubOptionsType = typeof(HubOptions<>).MakeGenericType(componentHubType);
var optionsType = typeof(IOptions<>).MakeGenericType(hubOptionsType);
var options = factory.Services.GetService(optionsType);
Assert.NotNull(options);
var value = optionsType.GetProperty("Value")!.GetValue(options);
Assert.NotNull(value);
var maximumReceiveMessageSize = (long?)hubOptionsType.GetProperty("MaximumReceiveMessageSize")!.GetValue(value);
Assert.Equal(256 * 1024, maximumReceiveMessageSize);
}
}

View File

@@ -4,7 +4,9 @@ using RpgRoller.Hosting;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRpgRollerCore(builder.Configuration, builder.Environment);
builder.Services.AddRazorComponents().AddInteractiveServerComponents();
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents()
.AddHubOptions(options => options.MaximumReceiveMessageSize = 256 * 1024);
builder.Services.AddScoped<RpgRollerApiClient>();
var app = builder.Build();