XFEExtension.NetCore.ServerInteractive
[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.ServerInteractive/Options/XFEServerCoreOptions.cs
+26
-2
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCore.cs
+0
-6
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCoreBuilder.cs
+27
-4
XFEstudio/XFEExtension.NetCore.ServerInteractive
重构XFE服务器核心配置,支持集中化选项
本次提交重构了XFE服务器核心的配置方式: - 新增XFEServerCoreOptions类,集中管理核心配置项; - XFEServerCoreBuilder支持通过配置对象或委托灵活构建; - 移除XFEServerCore构造函数中的默认命名,统一由Builder处理; - 相关属性迁移至配置类,构建时赋值; - 优化默认服务器名称生成逻辑; - 提升了代码结构的清晰度和可维护性。
139fe93
代码差异
3 个文件
+53
-12
@@ -1,6 +1,30 @@
1
namespace XFEExtension.NetCore.ServerInteractive.Options;
1
using XFEExtension.NetCore.CyberComm;
2
2
3
namespace XFEExtension.NetCore.ServerInteractive.Options;
4
5
/// <summary>
6
/// XFE服务器核心选项
7
/// </summary>
3
8
public class XFEServerCoreOptions
4
9
{
5
10
/// <summary>
11
/// 绑定的IP地址(服务初始化执行完成后才会刷新)
12
/// </summary>
13
public string BindingIPAddress { get; set; } = string.Empty;
14
/// <summary>
15
/// 核心服务器名称
16
/// </summary>
17
public string ServerCoreName { get; set; } = string.Empty;
18
/// <summary>
19
/// 是否自动对Json字符串进行反转义处理,默认为true
20
/// </summary>
21
public bool AutoUnescapeJson { get; set; } = true;
22
/// <summary>
23
/// 是否接收非标准的Json字符串,默认为true
24
/// </summary>
25
public bool AcceptNonStandardJson { get; set; } = true;
26
/// <summary>
27
/// 获取IP地址的函数,默认为从请求事件参数中获取客户端IP地址
28
/// </summary>
29
public Func<CyberCommRequestEventArgs, string> GetIpFunction { get; set; } = args => args.ClientIP;
6
30
}
@@ -19,7 +19,6 @@ namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server;
19
19
[CreateImpl]
20
20
public abstract class XFEServerCore : ServerCoreServiceBase
21
21
{
22
static int serverCount = 1;
23
22
/// <summary>
24
23
/// 是否自动对Json字符串进行反转义处理,默认为true
25
24
/// </summary>
@@ -61,11 +60,6 @@ public abstract class XFEServerCore : ServerCoreServiceBase
61
60
/// </summary>
62
61
public CyberCommServer CyberCommServer { get; internal set; } = new();
63
62
64
/// <summary>
65
/// XFE核心服务器
66
/// </summary>
67
public XFEServerCore() => ServerCoreName = $"XFE服务器-{serverCount++}";
68
69
63
private async void CyberCommServer_RequestReceived(object? sender, CyberCommRequestEventArgs e)
70
64
{
71
65
var r = new ServerCoreReturnArgs
@@ -1,7 +1,7 @@
1
1
using XFEExtension.NetCore.AutoImplement;
2
using XFEExtension.NetCore.CyberComm;
3
2
using XFEExtension.NetCore.ServerInteractive.Implements;
4
3
using XFEExtension.NetCore.ServerInteractive.Interfaces.CoreService;
4
using XFEExtension.NetCore.ServerInteractive.Options;
5
5
using XFEExtension.NetCore.StringExtension;
6
6
7
7
namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server;
@@ -12,6 +12,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server;
12
12
[CreateImpl]
13
13
public abstract class XFEServerCoreBuilder : XFEBuilderBase<XFEServerCoreBuilder>
14
14
{
15
static int serverCount = 1;
15
16
readonly XFEServerCore xFEServerCore = new XFEServerCoreImpl();
16
17
readonly List<IServerCoreOriginalService> serverCoreServiceList = [];
17
18
readonly List<IServerCoreVerifyService> serverCoreVerifyServiceList = [];
@@ -134,7 +135,7 @@ public abstract class XFEServerCoreBuilder : XFEBuilderBase<XFEServerCoreBuilder
134
135
/// 构建XFE服务器核心
135
136
/// </summary>
136
137
/// <returns>XFE服务器核心</returns>
137
public XFEServerCore Build(string? name = "")
138
public XFEServerCore Build(XFEServerCoreOptions? xFEServerCoreOptions = null)
138
139
{
139
140
foreach (var serverCoreService in serverCoreServiceList)
140
141
{
@@ -145,8 +146,30 @@ public abstract class XFEServerCoreBuilder : XFEBuilderBase<XFEServerCoreBuilder
145
146
xFEServerCore.serverCoreVerifyAsyncServiceList = serverCoreVerifyAsyncServiceList;
146
147
xFEServerCore.standardCoreServiceDictionary = serverStandardCoreServiceDictionary;
147
148
xFEServerCore.standardMultiCoreServiceDictionary = serverMultiStandardCoreServiceDictionary;
148
if (!name.IsNullOrEmpty())
149
xFEServerCore.ServerCoreName = name;
149
150
if (xFEServerCoreOptions is not null)
151
{
152
xFEServerCore.ServerCoreName = xFEServerCoreOptions.ServerCoreName;
153
xFEServerCore.AutoUnescapeJson = xFEServerCoreOptions.AutoUnescapeJson;
154
xFEServerCore.AcceptNonStandardJson = xFEServerCoreOptions.AcceptNonStandardJson;
155
xFEServerCore.GetIpFunction = xFEServerCoreOptions.GetIpFunction;
156
if(!xFEServerCoreOptions.BindingIPAddress.IsNullOrEmpty())
157
xFEServerCore.BindingIPAddress = xFEServerCoreOptions.BindingIPAddress;
158
}
159
160
if (xFEServerCore.ServerCoreName.IsNullOrEmpty())
161
xFEServerCore.ServerCoreName = $"XFE服务器-{serverCount++}";
150
162
return xFEServerCore;
151
163
}
164
165
/// <summary>
166
/// 构建XFE服务器核心
167
/// </summary>
168
/// <returns>XFE服务器核心</returns>
169
public XFEServerCore Build(Action<XFEServerCoreOptions> optionsBuilder)
170
{
171
var xFEServerCoreOptions = new XFEServerCoreOptions();
172
optionsBuilder(xFEServerCoreOptions);
173
return Build(xFEServerCoreOptions);
174
}
152
175
}