Signalr 信号器如果用户处于非活动状态会发生什么?

Signalr 信号器如果用户处于非活动状态会发生什么?,signalr,Signalr,我想知道如果用户处于非活动状态会发生什么 假设用户连接到集线器,连接已建立,但用户在一个小时内不刷新页面或不做任何事情。。。是否仍将保持连接 在这段时间之后,可以将消息推送到他那里吗?Signal发送keep alive消息,即使没有其他活动(长轮询连接除外;在这种情况下,客户端将发出常规ajax请求,这与保持连接活动的效果相同)。例如,你可以在一个小时不活动后发送消息 如果客户端设备进入睡眠模式或由于任何其他原因无法发送这些保持活动状态的消息,则连接最终将被删除(您可以通过GlobalHost

我想知道如果用户处于非活动状态会发生什么

假设用户连接到集线器,连接已建立,但用户在一个小时内不刷新页面或不做任何事情。。。是否仍将保持连接


在这段时间之后,可以将消息推送到他那里吗?

Signal发送keep alive消息,即使没有其他活动(长轮询连接除外;在这种情况下,客户端将发出常规ajax请求,这与保持连接活动的效果相同)。例如,你可以在一个小时不活动后发送消息


如果客户端设备进入睡眠模式或由于任何其他原因无法发送这些保持活动状态的消息,则连接最终将被删除(您可以通过
GlobalHost.Configuration.DisconnectTimeout
确定超时时间)。请参阅,以获得更详细的解释

我的经验是,理论上答案是肯定的。在实践中,我遇到了像Windows进入睡眠模式这样的问题,这会阻止信号器正确地重新连接。我不确定我没有做错什么导致这种行为,当时我使用的是测试版。对我来说,问题是当用户离开应用程序时,就像关闭标签一样。我在客户端中有disconnect(),但如果选项卡关闭,则不会调用它。所以,对我来说,关键是当OnDisconnect最终被调用时,从服务器上删除连接。哦,还有一件事,这个保持活动的消息会产生大量流量并使用cpu?在这种非活动状态下有1000 ppl,但仍在网站上。。。可能会导致问题?“很多”是相对的,但对于普通服务器来说,1000个连接应该不是问题