信号器捕捉保持活动失败/断开连接

时间:2013-02-28 21:29:11

标签: signalr

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

GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(30);

但我的问题是,如果它无法发送保持活动,你如何在javascript端捕获它?

如果这是服务器推送数据以保持连接存活,这意味着客户端永远不会知道它是否已经失败?

或者javascript会抛出connection.error吗?

我希望能够将客户端网络电缆拉出,并在XX秒后显示一条消息,指出网络连接丢失。 Atm我使用我的ajax调用工作,但这可能使用keepalive值吗?

1 个答案:

答案 0 :(得分:2)

除了LongPolling之外,每个传输都已实现。

默认情况下,如果JS客户端错过2次保持活动,则会重新连接。

如果你想要重新连接事件,你可以这样做:

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

如果你想绑定指示连接可以进入重新连接的事件可以执行:

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

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