XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEExtension.NetCore.CyberComm;

namespace XFEExtension.NetCore.ServerInteractive.Options;

/// <summary>
/// XFE服务器核心选项
/// </summary>
public class XFEServerCoreOptions
{
    /// <summary>
    /// 绑定的IP地址(服务初始化执行完成后才会刷新)
    /// </summary>
    public List<string> BindingIPAddress { get; set; } = [];
    /// <summary>
    /// 核心服务器名称
    /// </summary>
    public string ServerCoreName { get; set; } = string.Empty;
    /// <summary>
    /// 是否接收非标准的Json字符串,默认为true
    /// </summary>
    public bool AcceptNonStandardJson { get; set; } = true;
    /// <summary>
    /// 是否接收GET请求
    /// </summary>
    public bool AcceptGet { get; set; } = false;
    /// <summary>
    /// 是否接收POST请求
    /// </summary>
    public bool AcceptPost { get; set; } = true;
    /// <summary>
    /// 获取IP地址的函数,默认为从请求事件参数中获取客户端IP地址
    /// </summary>
    public Func<CyberCommRequestEventArgs, string> GetIPFunction { get; set; } = args => args.ClientIP;
    /// <summary>
    /// 主入口点路径(ServerCore主要入口点),默认为空字符串(为空时直接使用次级入口点)。
    /// 多个核心服务器绑定同一端口时,使用不同的主入口点区分核心服务器。
    /// </summary>
    public string MainEntryPoint { get; set; } = string.Empty;
    /// <summary>CyberComm 连接、请求和消息限制。</summary>
    public CyberCommLimitOptions TransportLimits { get; set; } = new();
    /// <summary>HTTPS/WSS TLS 证书配置;仅 HTTP 时可为空。</summary>
    public CyberCommTlsOptions? Tls { get; set; }

    /// <summary>
    /// 绑定IP地址
    /// </summary>
    /// <param name="ipAddress"></param>
    /// <returns></returns>
    public XFEServerCoreOptions BindIP(string ipAddress)
    {
        BindingIPAddress.Add(ipAddress);
        return this;
    }
}