我在 Asp.Net Core 3.1 和 Angular8 上使用 Azure SignalR。我还在客户端使用了 withAutomaticReconnect() 选项。它与 azure signalr 成功连接。但经过一段时间后,它会显示此错误消息并再次连接到 WebSocket。
问问题
1789 次
1 回答
1
错误:连接因错误“错误:服务器超时而未收到来自服务器的消息而断开”。
默认serverTimeoutInMilliseconds
值为 30,000 毫秒(30 秒),如果超过此超时时间而没有收到来自服务器的任何消息,则连接将终止并出现上述错误。
请检查您是否配置/更改了 SignalR 集线器服务器的KeepAliveInterval
选项。
更改时KeepAliveInterval
,我们应该更改serverTimeoutInMilliseconds
客户端的设置。并且推荐serverTimeoutInMilliseconds
值是该值的两倍KeepAliveInterval
。
例如:
在中心服务器上,将 KeepAliveInterval 更改为 1 分钟
services.AddSignalR(hubOptions =>
{
hubOptions.KeepAliveInterval = TimeSpan.FromMinutes(1);
}).AddAzureSignalR();
在客户端,将 serverTimeoutInMilliseconds 更改为 2 分钟
this.hubConnection.serverTimeoutInMilliseconds = 120000;
测试结果
于 2020-05-24T05:51:12.283 回答