客户端采用Client for ASP.NET Core SignalR
服务器端采用.NET5 自带集成asp.net core SignalR
连接服务器客户端互发数据一切都正常,正常断线也能实现自动重连
现在问题是:
在一个极其不稳定的4G网络环境下,在非固定时间内服务器端自动断开某一客户端,且客户端一直显示在连接状态,强制调用StopAsync及DisposeAsync 均无效
通过LOG追踪查询如下:
客户端连接 成功进入服务端OnConnectedAsync
一切数据互发正常
在网络不稳定时候发生
服务端直接进入OnDisconnectedAsync事件,且存在正常的Context.ConnectionId
随后,客户端此时无任何响应,不走重连,也不走onclose事件,日志显示为Connected,此时调用HUB方法无任何反应,也没有任何异常。通过timer10分钟检测一次连接状态,客户端状态一直显示为Connected。关掉服务器,客户端仍然显示为HubConnectionState.Connected。强制客户端调用StopAsync及DisposeAsync均无任何反应,仍然为Connected状态。重启客户端,一切连接重新初始化后又可正常运行,最长不超过24小时。
很奇葩的一个现象,麻烦指点一下,谢谢!