SignalR KeepAlive与ConnectionTimeout

时间:2014-11-05 04:34:51

标签: signalr

在SignalR(1.2.2)中,KeepAlive和ConnectionTimeout之间有什么区别?

保持活动状态主动ping服务器,连接永远不会超时。那么ConnectionTimeout有什么意义呢?

在建立新连接时,我是否将ConnectionTimeout与超时相关联?

3 个答案:

答案 0 :(得分:5)

我在发布问题后不久就在wiki找到了答案。设置KeepAlive时,几乎没有ConnectionTimeout无效。

维基说:

ConnectionTimeout - 表示在超时之前保持连接打开的时间。默认值为110秒。

KeepAlive - 表示在空闲连接上发送保持活动数据包之前等待的时间。设置为null以禁用保持活动状态。默认设置为30秒。启用此选项后,ConnectionTimeout将无效。

答案 1 :(得分:1)

<强> ConnectionTimeout

此设置表示在关闭传输连接并打开新连接之前保持传输连接打开并等待响应的时间。默认值为110秒。

<强>的KeepAlive

此设置表示通过空闲连接发送keepalive数据包之前等待的时间。默认值为10秒。该值不得超过DisconnectTimeout值的1/3。

答案 2 :(得分:1)

KeepAlive也意味着您具有打开的资源-连接。例如,CPU用于每10秒处理一次。 KeepAlive只会让服务器放弃它说“是的,我很小又很慢,但我还活着并向您发送包裹”。

ConnectionTimeout可以相同,直到重新连接。并且可能不会发生重新连接。超时后,资源将关闭(连接)并重新打开。 ConnectionTimeout就像“好吧,给我110秒,我将决定在此期间该怎么办。超时后,我们可以根据需要再次交谈”。