XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore/CyberComm/CyberCommServer.cs
+5
-5
Modified
XFEExtension.NetCore/CyberComm/CyberCommServerEventArgs.cs
+5
-4
Modified
XFEExtension.NetCore/CyberComm/CyberCommServerEventArgsImpl.cs
+3
-3
Modified
XFEExtension.NetCore/XFEExtension.NetCore.csproj
+9
-3
XFEstudio/XFEExtension
增强事件参数以支持消息结束状态
在 `CyberCommServer.cs` 中,`ClientConnected`、`MessageReceived` 和 `ConnectionClosed` 事件调用中新增了 `bool` 类型的 `endOfMessage` 参数,以指示消息是否结束。 在 `CyberCommServerEventArgs.cs` 中,更新了 `CyberCommServerEventArgs` 记录类型的构造函数,新增了 `endOfMessage` 参数。 在 `CyberCommServerEventArgsImpl.cs` 中,修改了 `CyberCommServerEventArgsImpl` 类的构造函数,以支持新的 `endOfMessage` 参数。 更新项目文件 `XFEExtension.NetCore.csproj` 中的版本号,从 `3.3.2` 升级到 `3.3.3`。
058e7fc
代码差异
4 个文件
+22
-15
@@ -71,7 +71,7 @@ public class CyberCommServer
71
71
var httpListenerWebSocketContext = await httpListenerContext.AcceptWebSocketAsync(null);
72
72
var webSocket = httpListenerWebSocketContext.WebSocket;
73
73
var wsHeader = httpListenerWebSocketContext.Headers;
74
ClientConnected?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, string.Empty, clientIP, wsHeader));
74
ClientConnected?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, string.Empty, clientIP, wsHeader, true));
75
75
CyberCommClientConnected(requestURL, webSocket, wsHeader, clientIP);
76
76
}
77
77
else
@@ -133,11 +133,11 @@ public class CyberCommServer
133
133
if (receiveResult.MessageType == WebSocketMessageType.Text)
134
134
{
135
135
string receivedMessage = Encoding.UTF8.GetString(receivedBinaryBuffer);
136
MessageReceived?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, receivedMessage, clientIP, wsHeader));
136
MessageReceived?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, receivedMessage, clientIP, wsHeader, receiveResult.EndOfMessage));
137
137
}
138
138
if (receiveResult.MessageType == WebSocketMessageType.Binary)
139
139
{
140
MessageReceived?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, receivedBinaryBuffer, clientIP, wsHeader));
140
MessageReceived?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, receivedBinaryBuffer, clientIP, wsHeader, receiveResult.EndOfMessage));
141
141
}
142
142
if (receiveResult.MessageType == WebSocketMessageType.Close)
143
143
{
@@ -147,11 +147,11 @@ public class CyberCommServer
147
147
}
148
148
catch (Exception ex)
149
149
{
150
MessageReceived?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, new XFECyberCommException("与客户端端通讯期间发生异常", ex), clientIP, wsHeader));
150
MessageReceived?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, new XFECyberCommException("与客户端端通讯期间发生异常", ex), clientIP, wsHeader, true));
151
151
break;
152
152
}
153
153
}
154
ConnectionClosed?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, string.Empty, clientIP, wsHeader));
154
ConnectionClosed?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, string.Empty, clientIP, wsHeader, true));
155
155
webSocket.Dispose();
156
156
}
157
157
#endregion
@@ -15,7 +15,8 @@ namespace XFEExtension.NetCore.CyberComm;
15
15
/// <param name="IpAddress"> 客户端IP地址 </param>
16
16
/// <param name="TextMessage"> 文本消息 </param>
17
17
/// <param name="BinaryMessage"> 二进制消息 </param>
18
public abstract record CyberCommServerEventArgs(Uri? RequestURL, BackMessageType MessageType, WebSocket CurrentWebSocket, NameValueCollection WSHeader, XFECyberCommException? Exception, string IpAddress, string? TextMessage, byte[]? BinaryMessage)
18
/// <param name="EndOfMessage">消息是否结束</param>
19
public abstract record CyberCommServerEventArgs(Uri? RequestURL, BackMessageType MessageType, WebSocket CurrentWebSocket, NameValueCollection WSHeader, XFECyberCommException? Exception, string IpAddress, string? TextMessage, byte[]? BinaryMessage, bool EndOfMessage)
19
20
{
20
21
/// <summary>
21
22
/// 发送文本消息
@@ -82,13 +83,13 @@ public abstract record CyberCommServerEventArgs(Uri? RequestURL, BackMessageType
82
83
throw new XFECyberCommException("强制关闭服务器端连接时出现异常", ex);
83
84
}
84
85
}
85
internal CyberCommServerEventArgs(Uri? requestURL, WebSocket webSocket, string message, string ipAddress, NameValueCollection wsHeader) : this(requestURL, BackMessageType.Text, webSocket, wsHeader, null, ipAddress, message, null)
86
internal CyberCommServerEventArgs(Uri? requestURL, WebSocket webSocket, string message, string ipAddress, NameValueCollection wsHeader, bool endOfMessage) : this(requestURL, BackMessageType.Text, webSocket, wsHeader, null, ipAddress, message, null, endOfMessage)
86
87
{
87
88
}
88
internal CyberCommServerEventArgs(Uri? requestURL, WebSocket webSocket, byte[] bytes, string ipAddress, NameValueCollection wsHeader) : this(requestURL, BackMessageType.Binary, webSocket, wsHeader, null, ipAddress, null, bytes)
89
internal CyberCommServerEventArgs(Uri? requestURL, WebSocket webSocket, byte[] bytes, string ipAddress, NameValueCollection wsHeader, bool endOfMessage) : this(requestURL, BackMessageType.Binary, webSocket, wsHeader, null, ipAddress, null, bytes, endOfMessage)
89
90
{
90
91
}
91
internal CyberCommServerEventArgs(Uri? requestURL, WebSocket webSocket, XFECyberCommException ex, string ipAddress, NameValueCollection wsHeader) : this(requestURL, BackMessageType.Error, webSocket, wsHeader, ex, ipAddress, null, null)
92
internal CyberCommServerEventArgs(Uri? requestURL, WebSocket webSocket, XFECyberCommException ex, string ipAddress, NameValueCollection wsHeader, bool endOfMessage) : this(requestURL, BackMessageType.Error, webSocket, wsHeader, ex, ipAddress, null, null, endOfMessage)
92
93
{
93
94
}
94
95
}
@@ -5,7 +5,7 @@ namespace XFEExtension.NetCore.CyberComm;
5
5
6
6
record class CyberCommServerEventArgsImpl : CyberCommServerEventArgs
7
7
{
8
internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, string message, string ipAddress, NameValueCollection wsHeader) : base(requestURL, webSocket, message, ipAddress, wsHeader) { }
9
internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, byte[] bytes, string ipAddress, NameValueCollection wsHeader) : base(requestURL, webSocket, bytes, ipAddress, wsHeader) { }
10
internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, XFECyberCommException ex, string ipAddress, NameValueCollection wsHeader) : base(requestURL, webSocket, ex, ipAddress, wsHeader) { }
8
internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, string message, string ipAddress, NameValueCollection wsHeader, bool endOfMessage) : base(requestURL, webSocket, message, ipAddress, wsHeader, endOfMessage) { }
9
internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, byte[] bytes, string ipAddress, NameValueCollection wsHeader, bool endOfMessage) : base(requestURL, webSocket, bytes, ipAddress, wsHeader, endOfMessage) { }
10
internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, XFECyberCommException ex, string ipAddress, NameValueCollection wsHeader, bool endOfMessage) : base(requestURL, webSocket, ex, ipAddress, wsHeader, endOfMessage) { }
11
11
}
@@ -5,7 +5,7 @@
5
5
<ImplicitUsings>enable</ImplicitUsings>
6
6
<Nullable>enable</Nullable>
7
7
<GenerateDocumentationFile>True</GenerateDocumentationFile>
8
<Version>3.3.2</Version>
8
<Version>3.3.3</Version>
9
9
<Title>XFEExtension</Title>
10
10
<RepositoryUrl>https://github.com/XFEstudio/XFEExtension</RepositoryUrl>
11
11
<AnalysisLevel>latest</AnalysisLevel>
@@ -20,10 +20,16 @@
20
20
<PackageTags>XFE;拓展;GPT;Server;服务器;测试;XFEExtension</PackageTags>
21
21
<PackageReleaseNotes>
22
22
## 调整
23
24
增强事件参数以支持消息结束状态
23
25
24
更新引用并优化 JSON 解析逻辑
26
在 `CyberCommServer.cs` 中,`ClientConnected`、`MessageReceived` 和 `ConnectionClosed` 事件调用中新增了 `bool` 类型的 `endOfMessage` 参数,以指示消息是否结束。
25
27
26
在 `Program.cs` 中移除对 `XFEPackage` 的引用,添加对 `XFEExtension` 和 `XFETransform.JsonConverter` 的引用,修改主函数以读取 JSON 文件内容。
28
在 `CyberCommServerEventArgs.cs` 中,更新了 `CyberCommServerEventArgs` 记录类型的构造函数,新增了 `endOfMessage` 参数。
29
30
在 `CyberCommServerEventArgsImpl.cs` 中,修改了 `CyberCommServerEventArgsImpl` 类的构造函数,以支持新的 `endOfMessage` 参数。
31
32
更新项目文件 `XFEExtension.NetCore.csproj` 中的版本号,从 `3.3.2` 升级到 `3.3.3`。
27
33
28
34
## 新增
29
35