在互联网断开/重新连接时不会调用SignalR断开连接

use*_*989 7 c# asp.net signalr signalr-hub signalr.client

我在我的应用程序中使用SignalR.我有一个应用程序,在很大程度上取决于OnDisconnected()被正确调用.在以下情况下正确调用它:

 public Task OnDisconnected()
 {
     try
     {
        DeleteUser(Context.ConnectionId);
        return null;
     }
     catch (Exception ex)
     {
        return null;
     }
}
Run Code Online (Sandbox Code Playgroud)
  1. 用户刷新页面
  2. 用户导航到新页面
  3. 用户关闭浏览器

但是,如果网络连接突然下降,则不会调用它.例如,如果我拔掉客户端计算机上的网络电缆,或者禁用客户端的无线网络,或者拔掉路由器OnDisconnected(),即使在等待几分钟后也不会被呼叫.

dav*_*owl 6

它会提升断开但不会立即.可以配置一个阈值(默认为30秒),SignalR将在等待客户端断开连接之前等待(在底层tcp连接消失之后,这也不是立即执行).如果连接在配置的超时之前丢失并重新连接,则它不会引发OnDisconnected.

如果您在等待一段时间之后从未在某些情况下看到它被提升,那么它可能是一个错误.SignalR 1.0今天发布,所以我鼓励你尝试一下,看看你是否还能看到问题.

  • 我们不使用它,因为它有一个错误.但是当它被修复时我们将使用它. (2认同)