Mqtt.cs 1.56 KB
namespace Rcs.Domain.Settings;

/// <summary>
/// MQTT 配置
/// @author zzy
/// </summary>
public record Mqtt
{
    /// <summary>
    /// MQTT Broker 地址
    /// </summary>
    public string Broker { get; set; } = "localhost";
    
    /// <summary>
    /// MQTT 端口
    /// </summary>
    public int Port { get; set; } = 1883;
    
    /// <summary>
    /// 客户端ID
    /// </summary>
    public string ClientId { get; set; } = "hah_rcs";
    
    /// <summary>
    /// 用户名
    /// </summary>
    public string? Username { get; set; }
    
    /// <summary>
    /// 密码
    /// </summary>
    public string? Password { get; set; }
    
    /// <summary>
    /// 是否使用 TLS
    /// </summary>
    public bool UseTls { get; set; } = false;
    
    /// <summary>
    /// 是否清除会话
    /// </summary>
    public bool CleanSession { get; set; } = true;
    
    /// <summary>
    /// 心跳间隔(秒)
    /// </summary>
    public int KeepAlivePeriodSeconds { get; set; } = 60;
    
    /// <summary>
    /// 重连延迟(秒)
    /// </summary>
    public int ReconnectDelaySeconds { get; set; } = 5;
    
    /// <summary>
    /// 协议配置列表
    /// </summary>
    public List<Protocol>? Protocols { get; set; }
}

/// <summary>
/// MQTT 协议配置
/// @author zzy
/// </summary>
public record Protocol
{
    /// <summary>
    /// 协议名称
    /// </summary>
    public string ProtocolName { get; set; } = string.Empty;
    
    /// <summary>
    /// 主题列表
    /// </summary>
    public List<string> Topics { get; set; } = new();
}