nul*_*ter 5 signalr blazor-server-side
为了在慢速/不可靠的网络上测试我的 Blazor 应用程序,我正在寻找一种方法来人为地限制发送到 Blazor 或从 Blazor 发送的 Websocket 消息。不幸的是 Chrome 仍然不支持限制 websocket 连接。
我深入研究了 ASP.NET SignalR 代码的内部,但找不到任何可以扩展的明显服务,也没有找到任何添加 SignalR 中间件的简单方法。
扩展HubDispatcher看起来最有前途,但这是一个内部类。
Blazor 或 SignalR 类中是否有可用的消息处理扩展点?
我设法用 s 做到这一点HubFilter:
public class LaggingHubFilter : IHubFilter
{
public async ValueTask<object> InvokeMethodAsync(HubInvocationContext invocationContext, Func<HubInvocationContext, ValueTask<object>> next)
{
await Task.Delay(200).ConfigureAwait(true);
return await next(invocationContext);
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其注册到Program.cs:
services.AddServerSideBlazor().AddHubOptions(h => h.AddFilter<LaggingHubFilter>());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |