gpt4 book ai didi

asp.net - 网站重启时自动恢复/重新连接 SignalR 连接

转载 作者:行者123 更新时间:2023-12-03 09:30:17 25 4
gpt4 key购买 nike

我有一个用 ASP.net 编写的使用 SignalR 的网站。

每当我发布对 Web 服务器的更改时,任何打开的 SignalR 连接都会在没有警告的情况下断开连接,因此在用户看来它只是被卡住了。当然,如果他们刷新页面,连接就会恢复,他们可以继续。

有没有办法优雅地重新打开那些丢失的连接,而不需要用户以任何方式采取行动?

最佳答案

如果您的网站/应用程序域在 30 秒内重新启动(SignalR 的默认 DisconnectTimeout),SignalR 应尝试自动无缝地重新建立连接。

SignalR 客户端在注意到服务器已关闭并开始尝试重新连接时将触发重新连接事件。如果在 DisconnectTimeout 之前成功重新连接,它将触发重新连接事件。

在服务器上,将在客户端成功重新连接到的集线器或 PersistentConnection 上调用 OnReconnected 事件。此事件将在更新的 Web 应用程序中调用。

如果您发现客户端正在断开连接,这可能意味着它们无法在 DisconnectTimeout 到期之前重新连接。您可以扩展 DisconnectTimeout,也可以尝试在客户端断开连接后手动启动新连接。如果您手动启动一个新连接,将在服务器上调用 OnConnected 而不是 OnReconnected,并且客户端将获得一个新的 ConnectionId。

有关 SignalR 重新连接逻辑以及如何在 SignalR 客户端上手动重新启动连接的更多详细信息可以在 this guide for "Understanding and Handling Connection Lifetime Events in SignalR" 中。 .

关于asp.net - 网站重启时自动恢复/重新连接 SignalR 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26318651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com