2

所以我的信号器工作正常,将我的数据推送给客户端没有问题。我使用 ajax 调用实现了自己的保持活动状态以保持连接活动。但我一直在阅读,并且有一个我正在尝试的选项:

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

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

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

或者javascript会抛出connection.error吗?

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

4

1 回答 1

2

除了 LongPolling 之外,每个传输都已经实现了这一点。

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

如果您想参与重新连接事件,您可以执行以下操作:

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

如果您想绑定表明连接可能会重新连接的事件,可以执行以下操作:

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

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

于 2013-02-28T22:19:04.300 回答