I have an API in my Aspire app that maps a SignalR endpoint /messageHub
. I have a Blazor web app (InteractiveAuto) that uses a SignalR client to connect to my hub from a razor component page:
var url = "https://localhost:7027/messageHub";HubConnection = new HubConnectionBuilder() .WithUrl(Navigation.ToAbsoluteUri(url), options => { options.HttpMessageHandlerFactory = innerHandler => new KoHttpMessageHandler { InnerHandler = innerHandler }; }).Build();
I can connect to my hub using CORS from my browser. When using WASM, Discovery Services isn't picking up my hub connection request to my API which it does for every other request from this url:
app.MapForwarder("/{**catch-all}", "https://localhost:7027", transformBuilder =>{ transformBuilder.AddRequestTransform(async transformContext => { var tokenAcquisition = transformContext.HttpContext.RequestServices.GetRequiredService<ITokenAcquisition>(); var configuration = transformContext.HttpContext.RequestServices.GetRequiredService<IConfiguration>(); var accessToken = await tokenAcquisition.GetAccessTokenForUserAsync([$"{configuration["DownstreamApis:MyApi-API:AppIdUri"]}/{configuration["DownstreamApis:MyApi:Scope"]}"]); transformContext.ProxyRequest.Headers.Authorization = new("Bearer", accessToken); });});
How do I get my reverse proxy to pick up my SignalR connection so I can add my token to my request in order to secure my hub?