Signalr 信号器捕捉保持活动故障/断开连接

Signalr 信号器捕捉保持活动故障/断开连接,signalr,Signalr,所以我让信号器工作正常,把我的数据推给客户没有问题。我使用ajax调用实现了自己的keep-alive,以保持连接的活动性。但我一直在阅读,有一个选择,我正在尝试: GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(30); 但我的问题是,如果它无法发送keep-alive,那么如何在javascript端捕获它 如果这是服务器推送数据以保持连接处于活动状态,这是否意味着客户端永远不会知道连接是否失败 或者javascript会

所以我让信号器工作正常,把我的数据推给客户没有问题。我使用ajax调用实现了自己的keep-alive,以保持连接的活动性。但我一直在阅读,有一个选择,我正在尝试:

GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(30);
但我的问题是,如果它无法发送keep-alive,那么如何在javascript端捕获它

如果这是服务器推送数据以保持连接处于活动状态,这是否意味着客户端永远不会知道连接是否失败

或者javascript会抛出connection.error吗


我希望能够拔出客户端网络电缆,在XX秒后,它会显示一条消息,说明网络连接丢失。Atm我使用ajax调用实现了这一点,但使用keepalive值是否可能实现这一点?

除了LongPolling之外,其他所有传输都已经实现了这一点

默认情况下,如果JS客户端丢失了2个keep alive,它将重新连接

如果要连接到重新连接事件中,可以执行以下操作:

$.connection.hub.reconnecting(function() {
    // Your logic
});
如果要连接到指示连接可能进入重新连接状态的事件中,可以执行以下操作:

$.connection.hub.connectionSlow(function() {
    // Your logic
});

请记住,默认情况下,客户端将在给定时间后停止尝试重新连接,并将切换到断开连接状态,以避免不必要的重新连接事件。如果您想确保您的连接始终处于连接状态,即使有停机时间,也可以在此处查看我的答案:

我无法访问这些事件,我使用的是signalr 0.5.3。我尝试使用event stateChanged,但它似乎只在某些时候起作用……您需要更新到1.0.0。不再支持0.5.3。对不起=(.永久重新连接方案在0.5.3Hi中不可用,我已将其更新为1.0.0,它可以正常工作。谢谢。决定将hub.statechanged事件用于。但我遇到的唯一问题是,它在页面更改时触发。每当连接状态更改时,hub state changed事件都会触发。因此,发生的是当您更改连接的页面时n切换到断开连接状态,因此触发statechanged事件。