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/Models/RequesterModels/XFEClientInstanceRequest.cs
+1
-1
Added
XFEExtension.NetCore.ServerInteractive/Options/XFEClientRequesterOptions.cs
+24
-0
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEClientRequesterBuilderExtensions.cs
+3
-3
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequester.cs
+4
-0
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequesterBuilder.cs
+26
-7
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/ServerService/ServerIpInitializer.cs
+13
-15
XFEstudio/XFEExtension.NetCore.ServerInteractive
优化XFE客户端请求器构建与配置方式
重构XFEClientRequesterBuilder,新增XFEClientRequesterOptions配置类,统一管理请求参数。支持通过Build方法传递配置对象或委托。新增AutoUnescapeResponse属性,提升响应内容处理灵活性。优化请求参数传递与IP绑定交互流程,提升代码可读性与健壮性。
22ae0a7
代码差异
6 个文件
+71
-26
@@ -8,7 +8,7 @@ public class XFEClientInstanceRequest
8
8
/// <summary>
9
9
/// 构建请求体
10
10
/// </summary>
11
public Func<string, string, object[], object> ConstructBody { get; set; } = (_, _, _) => default!;
11
public Func<string, string, object[], object> ConstructBody { get; set; } = (_, _, _) => null!;
12
12
/// <summary>
13
13
/// 处理请求
14
14
/// </summary>
@@ -0,0 +1,24 @@
1
namespace XFEExtension.NetCore.ServerInteractive.Options;
2
3
/// <summary>
4
/// XFE客户端请求器选项
5
/// </summary>
6
public class XFEClientRequesterOptions
7
{
8
/// <summary>
9
/// 请求地址
10
/// </summary>
11
public string RequestAddress { get; set; } = "http://localhost:3300/";
12
/// <summary>
13
/// 本次会话Session
14
/// </summary>
15
public string Session { get; set; } = string.Empty;
16
/// <summary>
17
/// 电脑信息
18
/// </summary>
19
public string ComputerInfo { get; set; } = string.Empty;
20
/// <summary>
21
/// 自动反转义响应内容(针对XFERequestService和XFEClientInstanceRequest的响应内容进行反转义处理,默认为true)
22
/// </summary>
23
public bool AutoUnescapeResponse { get; set; } = true;
24
}
@@ -12,7 +12,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Utilities.Extensions;
12
12
/// </summary>
13
13
public static class XFEClientRequesterBuilderExtensions
14
14
{
15
private readonly static JsonSerializerOptions JsonSerializerOptions = new();
15
private static readonly JsonSerializerOptions JsonSerializerOptions = new();
16
16
17
17
static XFEClientRequesterBuilderExtensions() => JsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
18
18
@@ -38,7 +38,7 @@ public static class XFEClientRequesterBuilderExtensions
38
38
computerInfo,
39
39
startDateTime = parameters[0],
40
40
endDateTime = parameters[1]
41
}, static response => response).AddRequest("clear_log", static (session, computerInfo, parameters) => new
41
}, static response => response).AddRequest("clear_log", static (session, computerInfo, _) => new
42
42
{
43
43
execute = "clear_log",
44
44
session,
@@ -50,7 +50,7 @@ public static class XFEClientRequesterBuilderExtensions
50
50
/// </summary>
51
51
/// <param name="xFEClientRequesterBuilder"></param>
52
52
/// <returns></returns>
53
public static XFEClientRequesterBuilder AddBannedIpRequest(this XFEClientRequesterBuilder xFEClientRequesterBuilder) => xFEClientRequesterBuilder.AddRequest("get_bannedIpList", static (session, computerInfo, parameters) => new
53
public static XFEClientRequesterBuilder AddBannedIpRequest(this XFEClientRequesterBuilder xFEClientRequesterBuilder) => xFEClientRequesterBuilder.AddRequest("get_bannedIpList", static (session, computerInfo, _) => new
54
54
{
55
55
execute = "get_bannedIpList",
56
56
session,
@@ -20,6 +20,10 @@ public abstract class XFEClientRequester : IRequesterBase
20
20
internal Dictionary<string, IRequestService> RequestServiceDictionary = [];
21
21
internal Dictionary<string, IXFERequestService> XFERequestServiceDictionary = [];
22
22
internal Dictionary<string, XFEClientInstanceRequest> XFEClientInstanceRequestDictionary = [];
23
/// <summary>
24
/// 自动反转义响应内容(针对XFERequestService和XFEClientInstanceRequest的响应内容进行反转义处理,默认为true)
25
/// </summary>
26
public bool AutoUnescapeResponse { get; set; } = true;
23
27
/// <inheritdoc/>
24
28
public string RequestAddress { get; set; } = string.Empty;
25
29
/// <inheritdoc/>
@@ -2,6 +2,7 @@
2
2
using XFEExtension.NetCore.ServerInteractive.Implements;
3
3
using XFEExtension.NetCore.ServerInteractive.Interfaces.Requester;
4
4
using XFEExtension.NetCore.ServerInteractive.Models.RequesterModels;
5
using XFEExtension.NetCore.ServerInteractive.Options;
5
6
using XFEExtension.NetCore.ServerInteractive.Utilities.Helpers;
6
7
7
8
namespace XFEExtension.NetCore.ServerInteractive.Utilities.Requester;
@@ -19,11 +20,8 @@ public abstract class XFEClientRequesterBuilder : XFEBuilderBase<XFEClientReques
19
20
/// <summary>
20
21
/// 创建构建器
21
22
/// </summary>
22
/// <param name="requestAddress">请求地址</param>
23
/// <param name="session">Session</param>
24
/// <param name="computerInfo">电脑信息</param>
25
23
/// <returns></returns>
26
public static XFEClientRequesterBuilder CreateBuilder(string requestAddress = "http://localhost:8080/", string session = "", string computerInfo = "")
24
public static XFEClientRequesterBuilder CreateBuilder()
27
25
{
28
26
var builder = new XFEClientRequesterBuilderImpl
29
27
{
@@ -41,9 +39,8 @@ public abstract class XFEClientRequesterBuilder : XFEBuilderBase<XFEClientReques
41
39
/// <summary>
42
40
/// 创建构建器
43
41
/// </summary>
44
/// <param name="requestAddress">请求地址</param>
45
42
/// <returns></returns>
46
public static XFEClientRequesterBuilder CreateBuilder(string requestAddress = "http://localhost:8080/")
43
public static XFEClientRequesterBuilder CreateBuilder()
47
44
{
48
45
var builder = new XFEClientRequesterBuilderImpl
49
46
{
@@ -129,8 +126,30 @@ public abstract class XFEClientRequesterBuilder : XFEBuilderBase<XFEClientReques
129
126
/// 构建XFE客户端请求器
130
127
/// </summary>
131
128
/// <returns>XFE客户端请求器</returns>
132
public XFEClientRequester Build()
129
public XFEClientRequester Build(XFEClientRequesterOptions options)
133
130
{
131
_xFEClientRequester.RequestAddress = options.RequestAddress;
132
_xFEClientRequester.Session = options.Session;
133
_xFEClientRequester.ComputerInfo = options.ComputerInfo;
134
_xFEClientRequester.AutoUnescapeResponse = options.AutoUnescapeResponse;
135
_xFEClientRequester.RequestServiceDictionary = _requestServiceDictionary;
136
_xFEClientRequester.XFERequestServiceDictionary = _xFERequestServiceDictionary;
137
_xFEClientRequester.XFEClientInstanceRequestDictionary = _xFEClientInstanceRequestDictionary;
138
return _xFEClientRequester;
139
}
140
141
/// <summary>
142
/// 构建XFE客户端请求器
143
/// </summary>
144
/// <returns>XFE客户端请求器</returns>
145
public XFEClientRequester Build(Action<XFEClientRequesterOptions> optionsBuilder)
146
{
147
var options = new XFEClientRequesterOptions();
148
optionsBuilder(options);
149
_xFEClientRequester.RequestAddress = options.RequestAddress;
150
_xFEClientRequester.Session = options.Session;
151
_xFEClientRequester.ComputerInfo = options.ComputerInfo;
152
_xFEClientRequester.AutoUnescapeResponse = options.AutoUnescapeResponse;
134
153
_xFEClientRequester.RequestServiceDictionary = _requestServiceDictionary;
135
154
_xFEClientRequester.XFERequestServiceDictionary = _xFERequestServiceDictionary;
136
155
_xFEClientRequester.XFEClientInstanceRequestDictionary = _xFEClientInstanceRequestDictionary;
@@ -17,25 +17,23 @@ public class ServerIpInitializer : ServerInitializerServiceBase
17
17
foreach (var serverCoreService in XFEServer.ServerCoreProcessService.ServerCoreServiceList)
18
18
{
19
19
ServerBaseProfile.ServerLastBindingAddressDictionary.TryAdd(serverCoreService.ServerCoreName, $"http://localhost:{_nextDefaultPort++}/");
20
if (ServerBaseProfile.ServerLastBindingAddressDictionary.TryGetValue(serverCoreService.ServerCoreName, out var ipAddress))
20
if (!ServerBaseProfile.ServerLastBindingAddressDictionary.TryGetValue(serverCoreService.ServerCoreName, out var ipAddress)) continue;
21
Console.WriteLine($"正在设置服务器:{serverCoreService.ServerCoreName}");
22
Console.WriteLine($"是否绑定IP:{ipAddress}?(Y/N)");
23
var key = Console.ReadKey();
24
Console.WriteLine(key.Key.ToString());
25
if (key.Key == ConsoleKey.N)
21
26
{
22
Console.WriteLine($"正在设置服务器:{serverCoreService.ServerCoreName}");
23
Console.WriteLine($"是否绑定IP:{ipAddress}?(Y/N)");
24
var key = Console.ReadKey();
25
Console.WriteLine(key.Key.ToString());
26
if (key.Key == ConsoleKey.N)
27
ipAddress = string.Empty;
28
while (ipAddress.IsNullOrWhiteSpace())
27
29
{
28
ipAddress = string.Empty;
29
while (ipAddress.IsNullOrWhiteSpace())
30
{
31
XFEConsole.XFEConsole.CurrentConsoleTextWriter?.OriginalTextWriter.Write("请输入绑定的IP:");
32
ipAddress = Console.ReadLine();
33
}
34
ServerBaseProfile.ServerLastBindingAddressDictionary[serverCoreService.ServerCoreName] = ipAddress;
30
XFEConsole.XFEConsole.CurrentConsoleTextWriter?.OriginalTextWriter.Write("请输入绑定的IP:");
31
ipAddress = Console.ReadLine();
35
32
}
36
serverCoreService.BindingIPAddress = ipAddress;
37
Console.WriteLine($"服务器{serverCoreService.ServerCoreName}设置完成!IP为:{ipAddress}");
33
ServerBaseProfile.ServerLastBindingAddressDictionary[serverCoreService.ServerCoreName] = ipAddress;
38
34
}
35
serverCoreService.BindingIPAddress = ipAddress;
36
Console.WriteLine($"服务器{serverCoreService.ServerCoreName}设置完成!IP为:{ipAddress}");
39
37
}
40
38
ServerBaseProfile.SaveProfile();
41
39
}