我有一个asp net核心应用程序,它严重依赖于websockets(ClientWebSocket
和从httpContext
检索的常规WebSocket
)。
我现在还想将SignalR
功能添加到我的应用程序中(不是为了替换现有的功能,因为这两个功能来自外部)。但是我看到那个电话
builder.Services.AddSignalR();
并禁用WebSocket保持活动功能。(这是它的叫法)
// Disable the WebSocket keep alive since SignalR has it's own
services.Configure<WebSocketOptions>(o => o.KeepAliveInterval = TimeSpan.Zero);
我可以尝试使用AddSignalR
的重载方法,如下所示
builder.Services.AddSignalR(options =>
{
options.KeepAliveInterval = TimeSpan.FromSeconds(15);
});
但这将改变所有的WebSocketOptions
,SignalR
和其他类似的(违背目的)。除了SignalR
之外,有没有办法将我所有的WebSocketOptions
都保持为默认值?
1条答案
按热度按时间up9lanfz1#
除了SignalR之外,是否没有办法将我所有的WebSocketOptions都保持为默认值?
实际上,根据你的场景和描述,我想提的是,SignalR已经在WebSockets上引入,以改善WebSockets中发现的潜在缺点,SignalR已经大大克服了这一点。因此,不建议将signalR和WebSockets集成在一起。
但是,如果你仍然想保持现有的WebSocket配置,你应该配置WebSockets中间件,并使用UseWebSockets注入你的自定义配置。因此,这样您现有的WebSockets设置将占上风。您可以按以下方式进行配置:
输出:
**注意:**如您所见,WebSocket的alive间隔时间保持不变。此外,我想说的是,它不建议,这可能会导致性能问题。除此之外,您可以在官方文件中获得更多细节。