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.TServer/Program.cs
+5
-1
Modified
XFEExtension.NetCore.ServerInteractive/Implements/ServerService/ServerCoreServiceBase.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Interfaces/ServerService/IServerCoreService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Options/XFEServerCoreOptions.cs
+12
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEServerBuilderExtensions.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequester.cs
+3
-2
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/ServerService/ServerIpInitializer.cs
+2
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/ServerService/XFECoreServerProcessService.cs
+22
-20
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCore.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCoreBuilder.cs
+2
-2
Modified
XFEExtension.NetCore.ServerInteractive/XFEExtension.NetCore.ServerInteractive.csproj
+2
-6
XFEstudio/XFEExtension.NetCore.ServerInteractive
将绑定IP地址改为多IP绑定
f1b8002
代码差异
11 个文件
+52
-37
@@ -26,6 +26,10 @@ var server = XFEServerBuilder.CreateBuilder() // 创建服务器构建器
26
26
.AddTable<User, UserProfile>("用户", (int)UserRole.经理, (int)UserRole.经理, (int)UserRole.经理, (int)UserRole.业务员); // 添加名为用户的表格User类 型, AutoConfig为 UserProfile。获取权限为业务员,添加移除更改权限为经理
27
27
})
28
28
.AddStandardService<TestCoreService>("test")
29
.Build()) // 构建核心服务器
29
.Build(options =>
30
{
31
options.BindIP("http://localhost:3305/")
32
.BindIP("https://localhost:3306/");
33
})) // 构建核心服务器
30
34
.Build(); // 构建服务器
31
35
await server.Start(); // 启动服务
@@ -13,7 +13,7 @@ public abstract class ServerCoreServiceBase : IServerCoreService
13
13
/// <inheritdoc/>
14
14
public string ServerCoreName { get; set; } = string.Empty;
15
15
/// <inheritdoc/>
16
public string BindingIPAddress { get; set; } = string.Empty;
16
public List<string> BindingIPAddressList { get; set; } = [];
17
17
18
18
/// <inheritdoc/>
19
19
public abstract Task StartServerCore();
@@ -8,7 +8,7 @@ public interface IServerCoreService : IXFEServerServiceBase
8
8
/// <summary>
9
9
/// 绑定的IP地址(服务初始化执行完成后才会刷新)
10
10
/// </summary>
11
string BindingIPAddress { get; set; }
11
List<string> BindingIPAddressList { get; set; }
12
12
/// <summary>
13
13
/// 核心服务器名称
14
14
/// </summary>
@@ -10,7 +10,7 @@ public class XFEServerCoreOptions
10
10
/// <summary>
11
11
/// 绑定的IP地址(服务初始化执行完成后才会刷新)
12
12
/// </summary>
13
public string BindingIPAddress { get; set; } = string.Empty;
13
public List<string> BindingIPAddress { get; set; } = [];
14
14
/// <summary>
15
15
/// 核心服务器名称
16
16
/// </summary>
@@ -27,4 +27,15 @@ public class XFEServerCoreOptions
27
27
/// 获取IP地址的函数,默认为从请求事件参数中获取客户端IP地址
28
28
/// </summary>
29
29
public Func<CyberCommRequestEventArgs, string> GetIPFunction { get; set; } = args => args.ClientIP;
30
31
/// <summary>
32
/// 绑定IP地址
33
/// </summary>
34
/// <param name="ipAddress"></param>
35
/// <returns></returns>
36
public XFEServerCoreOptions BindIP(string ipAddress)
37
{
38
BindingIPAddress.Add(ipAddress);
39
return this;
40
}
30
41
}
@@ -17,7 +17,6 @@ public static class XFEServerBuilderExtensions
17
17
/// <returns></returns>
18
18
public XFEServerBuilder UseXFEServer() => xFEServerBuilder.UseXFELog()
19
19
.AddXFEExceptionProcess()
20
.AddXFEIPInitializer()
21
20
.AddXFECoreProcessor();
22
21
23
22
/// <summary>
@@ -42,6 +41,7 @@ public static class XFEServerBuilderExtensions
42
41
/// 使用XFEIP初始化器
43
42
/// </summary>
44
43
/// <returns></returns>
44
[Obsolete("核心服务器现已不再使用单一IP,故IP初始化器不再提供", DiagnosticId = "XFW0002", UrlFormat = "https://docs.xfegzs.com/View/Errors%2FServerInteractive%2FXFW0002")]
45
45
public XFEServerBuilder AddXFEIPInitializer() => xFEServerBuilder.AddInitializer<ServerIPInitializer>();
46
46
}
47
47
}
@@ -1,5 +1,6 @@
1
1
using System.Net;
2
2
using System.Text.Json;
3
using System.Text.RegularExpressions;
3
4
using XFEExtension.NetCore.AutoImplement;
4
5
using XFEExtension.NetCore.DelegateExtension;
5
6
using XFEExtension.NetCore.ServerInteractive.Exceptions;
@@ -78,7 +79,7 @@ public abstract class XFEClientRequester : IRequesterBase
78
79
if (code == HttpStatusCode.OK)
79
80
{
80
81
xFEService.Response = response;
81
xFEService.UnescapedResponse = response;
82
xFEService.UnescapedResponse = Regex.Unescape(response);
82
83
var requestResult = xFEService.AnalyzeResponse();
83
84
MessageReceived?.Invoke(this, new ServerInteractiveEventArgsImpl("Success", code));
84
85
result.Message = "Success";
@@ -118,7 +119,7 @@ public abstract class XFEClientRequester : IRequesterBase
118
119
if (code == HttpStatusCode.OK)
119
120
{
120
121
instance.Response = response;
121
instance.UnescapedResponse = response;
122
instance.UnescapedResponse = Regex.Unescape(response);
122
123
var requestResult = instance.AnalyzeResponse();
123
124
MessageReceived?.Invoke(this, new ServerInteractiveEventArgsImpl("Success", code));
124
125
result.Message = "Success";
@@ -7,6 +7,7 @@ namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server.Services.Serve
7
7
/// <summary>
8
8
/// 服务器IP初始化服务
9
9
/// </summary>
10
[Obsolete("核心服务器现已不再使用单一IP,故IP初始化器不再提供", DiagnosticId = "XFW0002", UrlFormat = "https://docs.xfegzs.com/View/Errors%2FServerInteractive%2FXFW0002")]
10
11
public class ServerIPInitializer : ServerInitializerServiceBase
11
12
{
12
13
private static int s_nextDefaultPort = 3300;
@@ -32,7 +33,7 @@ public class ServerIPInitializer : ServerInitializerServiceBase
32
33
}
33
34
ServerBaseProfile.ServerLastBindingAddressDictionary[serverCoreService.ServerCoreName] = ipAddress;
34
35
}
35
serverCoreService.BindingIPAddress = ipAddress;
36
serverCoreService.BindingIPAddressList = [];
36
37
Console.WriteLine($"服务器{serverCoreService.ServerCoreName}设置完成!IP为:{ipAddress}");
37
38
}
38
39
ServerBaseProfile.SaveProfile();
@@ -14,35 +14,37 @@ public class XFEServerCoreProcessService : ServerCoreProcessServiceBase
14
14
{
15
15
try
16
16
{
17
Console.WriteLine(File.Exists("server.log") ? "[DEBUG]找到日志文件!" : "[DEBUG]未找到日志文件!");
17
Console.WriteLine(File.Exists("server.log") ? "[DEBUG] 找到日志文件!" : "[DEBUG] 未找到日志文件!");
18
18
var taskList = ServerCoreServiceList.Select(serverCoreService => Task.Run(async () =>
19
19
{
20
20
while (true)
21
21
{
22
22
try
23
23
{
24
Console.WriteLine($"[DEBUG]正在启动服务器:{serverCoreService.ServerCoreName}({serverCoreService.BindingIPAddress})...");
24
var i = 0;
25
Console.WriteLine($"[DEBUG] 正在启动服务器:{serverCoreService.ServerCoreName}...");
26
serverCoreService.BindingIPAddressList.ForEach(ip => Console.WriteLine($"[DEBUG] {serverCoreService.ServerCoreName}绑定IP-{++i}:{ip}"));
25
27
await serverCoreService.StartServerCore();
26
Console.WriteLine($"[ERROR]服务器({serverCoreService.ServerCoreName})因未知原因自行结束!");
27
Console.WriteLine("[DEBUG]准备重启服务器({serverCoreService.ServerCoreName})");
28
Console.WriteLine($"[ERROR] 服务器({serverCoreService.ServerCoreName})因未知原因自行结束!");
29
Console.WriteLine("[DEBUG] 准备重启服务器({serverCoreService.ServerCoreName})");
28
30
await Task.Delay(1000);
29
Console.WriteLine("[DEBUG]正在重启服务器({serverCoreService.ServerCoreName}) 3...");
31
Console.WriteLine("[DEBUG] 正在重启服务器({serverCoreService.ServerCoreName}) 3...");
30
32
await Task.Delay(1000);
31
Console.WriteLine("[DEBUG]正在重启服务器({serverCoreService.ServerCoreName}) 2...");
33
Console.WriteLine("[DEBUG] 正在重启服务器({serverCoreService.ServerCoreName}) 2...");
32
34
await Task.Delay(1000);
33
Console.WriteLine("[DEBUG]正在重启服务器({serverCoreService.ServerCoreName}) 1...");
35
Console.WriteLine("[DEBUG] 正在重启服务器({serverCoreService.ServerCoreName}) 1...");
34
36
}
35
37
catch (Exception ex)
36
38
{
37
Console.WriteLine($"[ERROR]服务器({serverCoreService.ServerCoreName})错误:{ex.Message}:{ex.InnerException?.Message}");
38
Console.WriteLine($"[TRACE]{ex.StackTrace}");
39
Console.WriteLine($"[DEBUG]准备重启服务器({serverCoreService.ServerCoreName})");
39
Console.WriteLine($"[ERROR] 服务器({serverCoreService.ServerCoreName})错误:{ex.Message}:{ex.InnerException?.Message}");
40
Console.WriteLine($"[TRACE] {ex.StackTrace}");
41
Console.WriteLine($"[DEBUG] 准备重启服务器({serverCoreService.ServerCoreName})");
40
42
await Task.Delay(1000);
41
Console.WriteLine($"[DEBUG]正在重启服务器({serverCoreService.ServerCoreName}) 3...");
43
Console.WriteLine($"[DEBUG] 正在重启服务器({serverCoreService.ServerCoreName}) 3...");
42
44
await Task.Delay(1000);
43
Console.WriteLine($"[DEBUG]正在重启服务器({serverCoreService.ServerCoreName}) 2...");
45
Console.WriteLine($"[DEBUG] 正在重启服务器({serverCoreService.ServerCoreName}) 2...");
44
46
await Task.Delay(1000);
45
Console.WriteLine($"[DEBUG]正在重启服务器({serverCoreService.ServerCoreName}) 1...");
47
Console.WriteLine($"[DEBUG] 正在重启服务器({serverCoreService.ServerCoreName}) 1...");
46
48
}
47
49
}
48
50
}))
@@ -51,16 +53,16 @@ public class XFEServerCoreProcessService : ServerCoreProcessServiceBase
51
53
}
52
54
catch (Exception ex)
53
55
{
54
Console.WriteLine($"[DEBUG]服务器错误:{ex}");
55
Console.WriteLine($"[ERROR]服务器错误:{ex.Message}");
56
Console.WriteLine($"[TRACE]{ex.StackTrace}");
57
Console.WriteLine("[DEBUG]准备重启服务器");
56
Console.WriteLine($"[DEBUG] 服务器错误:{ex}");
57
Console.WriteLine($"[ERROR] 服务器错误:{ex.Message}");
58
Console.WriteLine($"[TRACE] {ex.StackTrace}");
59
Console.WriteLine("[DEBUG] 准备重启服务器");
58
60
await Task.Delay(1000);
59
Console.WriteLine("[DEBUG]正在重启服务器 3...");
61
Console.WriteLine("[DEBUG] 正在重启服务器 3...");
60
62
await Task.Delay(1000);
61
Console.WriteLine("[DEBUG]正在重启服务器 2...");
63
Console.WriteLine("[DEBUG] 正在重启服务器 2...");
62
64
await Task.Delay(1000);
63
Console.WriteLine("[DEBUG]正在重启服务器 1...");
65
Console.WriteLine("[DEBUG] 正在重启服务器 1...");
64
66
}
65
67
}
66
68
}
@@ -192,7 +192,7 @@ public abstract class XFEServerCore : ServerCoreServiceBase
192
192
/// <returns></returns>
193
193
public override async Task StartServerCore()
194
194
{
195
CyberCommServer.ServerUrlArray = [BindingIPAddress];
195
CyberCommServer.ServerUrlArray = [.. BindingIPAddressList];
196
196
CyberCommServer.RequestReceived += CyberCommServer_RequestReceived;
197
197
await CyberCommServer.StartCyberCommServer();
198
198
}
@@ -129,8 +129,8 @@ public abstract class XFEServerCoreBuilder : XFEBuilderBase<XFEServerCoreBuilder
129
129
_xFEServerCore.AutoUnescapeJson = xFEServerCoreOptions.AutoUnescapeJson;
130
130
_xFEServerCore.AcceptNonStandardJson = xFEServerCoreOptions.AcceptNonStandardJson;
131
131
_xFEServerCore.GetIPFunction = xFEServerCoreOptions.GetIPFunction;
132
if(!xFEServerCoreOptions.BindingIPAddress.IsNullOrEmpty())
133
_xFEServerCore.BindingIPAddress = xFEServerCoreOptions.BindingIPAddress;
132
if (xFEServerCoreOptions.BindingIPAddress.Count > 0)
133
_xFEServerCore.BindingIPAddressList = xFEServerCoreOptions.BindingIPAddress;
134
134
}
135
135
136
136
if (_xFEServerCore.ServerCoreName.IsNullOrEmpty())
@@ -5,7 +5,7 @@
5
5
<ImplicitUsings>enable</ImplicitUsings>
6
6
<Nullable>enable</Nullable>
7
7
<GenerateDocumentationFile>True</GenerateDocumentationFile>
8
<Version>2.4.0</Version>
8
<Version>2.5.0</Version>
9
9
<Title>XFEExtension.NetCore.ServerInteractive</Title>
10
10
<RepositoryUrl>https://github.com/XFEstudio/XFEExtension.NetCore.ServerInteractive</RepositoryUrl>
11
11
<AnalysisLevel>latest</AnalysisLevel>
@@ -21,11 +21,7 @@
21
21
<PackageReleaseNotes>
22
22
## 调整
23
23
24
重构响应处理,移除自动反转义,接口调整
25
26
重构 IStandardRequestService 及其实现,新增 Response/UnescapedResponse 属性,AnalyzeResponse 方法不再传递参数,统一通过属性获取响应内容。
27
XFEClientRequester 移除 AutoUnescapeResponse 相关逻辑及配置项,响应处理更清晰。
28
版本号升级至 2.4.0。
24
将绑定IP地址改为多IP绑定
29
25
30
26
## 新增
31
27