使用 SignalR 中心,连接会在一段时间后丢失 - 原因
本文关键字:原因 一段时间 中心 SignalR 连接 使用 | 更新日期: 2023-09-27 18:34:50
在我的 SignalR 应用中,回调按预期在页面上触发。 如果页面保留了一段时间,则在刷新页面之前,不会再在该页面上调用回调。
我怀疑这可能是由于站点的会话过期(使用客户端的会话 ID 调用客户端通知(。
我在此处阅读了有关KeepAlive
功能的信息,并且可以在 SignalR 代码中看到对它的一些引用。 我不清楚是否需要实现客户端保持活动状态,如果需要,如何实现?
看看 http://www.asp.net/signalr/overview/signalr-20/hubs-api/handling-connection-lifetime-events
$.connection.hub.disconnected(function() {
alert('disconnected')
setTimeout(function() {
alert('reconnecting')
$.connection.hub.start();
}, 5000); // Restart connection after 5 seconds.
});
我没有
做任何实验或检查文档,但你的假设是有道理的。由于各种充分的原因,SignalR 不支持会话。如果它不支持从会话读取,则可以合理地预期它不会刷新会话过期时间。但是,如果您确实需要使用会话 ID 作为客户端 ID(您不应该这样做(,那么实现一种保持活动状态很容易。只需编写一些JS即可以最简单的方式调用服务器(例如启用会话的HTTP处理程序(,而无需执行任何工作。它仅用于刷新会话过期时间。