我使用SignalR在Vue.js前端和dotnet后端之间进行通信。
当您在后台的前端选项卡后(似乎是随机的)时间,连接被断开。因为我使用的是自动重新连接,所以套接字会被重新连接,但是在标签重新聚焦之前,套接字将继续每隔几分钟断开连接,把它放到一个重新连接的循环中。
有几件事:
H 110
Kestrel超时设置为一个小时(以防万一)<代码>H 211<代码>H 112<代码>H 112导致重新连接开始轮转的初始断开没有在一致的时间内发生,只是在5-10分钟标记H 213
<代码>H 114不抛出错误的任何一个端H 215
。
客户端代码是非常基本的:
this.connection = new HubConnectionBuilder()
.withUrl(this.url)
.withAutomaticReconnect()
.build()
服务器端代码也是类似的基本代码:
public override async Task OnConnectedAsync()
{
//Create client code here
await base.OnConnectedAsync();
}
public override async Task OnDisconnectedAsync(Exception exception)
{
if(exception != null) _logger.LogErrorToFile(exception.Message);
_logger.LogInformationToFile($"Client with id: {GetConnectionId()} disconnected.{GetUsername()}");
await base.OnDisconnectedAsync(exception);
}
发布于 2021-10-21 18:44:00
Chrome在今年早些时候进行了一次更新,在大约5分钟后,当它们不在焦点时,就会停止连接。Nirbhay评论的问题/修复实际上是针对ASP.NET版本(2.4.2)的,与.NET内核不兼容。以下是针对.NET CORE -github.com/dotnet/aspnetcore/ is /31079提出的问题
https://stackoverflow.com/questions/69662688
复制相似问题