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

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
返回提交历史

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
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

4 个文件 +22 -15
Modified XFEExtension.NetCore/CyberComm/CyberCommServer.cs +5 -5
@@ -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
Modified XFEExtension.NetCore/CyberComm/CyberCommServerEventArgs.cs +5 -4
@@ -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 }
Modified XFEExtension.NetCore/CyberComm/CyberCommServerEventArgsImpl.cs +3 -3
@@ -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 }
Modified XFEExtension.NetCore/XFEExtension.NetCore.csproj +9 -3
@@ -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