c# ASP.NET Core SignalR 客户端配置自动重连次数

自动重新连接

csharp 复制代码
HubConnection connection= new HubConnectionBuilder()
    .WithUrl(new Uri("http://127.0.0.1:5000/chathub"))
    .WithAutomaticReconnect()
    .Build();

在没有任何参数的情况下,WithAutomaticReconnect() 将客户端配置为在每次尝试重新连接之前分别等待 0、2、10 和 30 秒,在四次尝试失败后停止。

如果想要更好地控制自动重新连接尝试的时间安排和次数,则 WithAutomaticReconnect 需接受实现 IRetryPolicy 接口的对象,该对象具有一个名为 NextRetryDelay 的方法。

csharp 复制代码
public class RandomRetryPolicy : IRetryPolicy
{
    private readonly Random _random = new Random();

    public TimeSpan? NextRetryDelay(RetryContext retryContext)
    {
        // If we've been reconnecting for less than 60 seconds so far,
        // wait between 0 and 10 seconds before the next reconnect attempt.
        if (retryContext.ElapsedTime < TimeSpan.FromSeconds(60))
        {
            return TimeSpan.FromSeconds(_random.NextDouble() * 10);
        }
        else
        {
            // If we've been reconnecting for more than 60 seconds so far, stop reconnecting.
            return null;
        }
    }
}

参考连接:https://learn.microsoft.com/zh-cn/aspnet/core/signalr/dotnet-client?view=aspnetcore-9.0&tabs=visual-studio

相关推荐
c#上位机9 分钟前
halcon图像去噪—高斯滤波
c#·上位机·halcon·机器视觉
van久29 分钟前
.Net Core 学习:Razor Pages -- 依赖注入
学习·.netcore
神奇的板烧1 小时前
Java泛型不变性引发的类型转换问题及解决方案
java·c#
Aevget2 小时前
界面控件开发包DevExpress v25.1.7更新上线——修复一些小bug
c#·wpf·winform·devexpress·ui开发·用户界面
Q180809513 小时前
手撕BP与CNN:不依赖外源库,探寻神经网络原理
c#
van久3 小时前
.Net Core 学习:Razor Pages -- EF Core工作原理
数据库·学习·.netcore
c#上位机4 小时前
halcon图像分割之动态阈值分割
图像处理·人工智能·计算机视觉·c#·halcon
崇文殿大学士4 小时前
C# MediatR 中介者模式 观察者模式
观察者模式·c#·中介者模式
derive_magic5 小时前
wwwwwwjava
开发语言·c#
代数狂人5 小时前
【秒懂C#14 第一章:C#简介】
开发语言·c#