迁移到 asp.net 核心 3.1 后,SignalR 进行了大量重新连接

SignalR makes a lot of re-reconnections after migration to asp.net core 3.1

asp.net core 2.1 迁移到 asp.net core 3.1 后,SignalR 的行为有所不同。 闲置 30 秒后,我重新连接到 negotiate?negotiateVersion=1 等协商查询,我的应用程序堆叠了一秒钟。

如何在没有额外重新连接的情况下恢复旧行为?

看来我找到问题的原因了:

asp.net core 3 中为 AddSignalR 方法引入了一个名为 ClientTimeoutInterval 的新参数。默认值为 30 seconds.

我设置了以下设置后:

services.AddSignalR(
   hubOptions =>
{
    hubOptions.ClientTimeoutInterval = TimeSpan.MaxValue;
});

问题解决了。