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

XFEExtension

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

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

XFEstudio/XFEExtension

更新事件参数以支持消息完成状态

在 `CyberCommClient` 和 `CyberCommServer` 相关类中,修改了 `MessageReceived` 事件的调用,添加了 `EndOfMessage` 参数以指示消息是否已发送完成。同时,更新了构造函数以支持新的参数,并去掉了不必要的 `endOfMessage` 参数,确保在处理异常时的参数传递更加清晰。

e4275a2
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

7 个文件 +16 -21
Modified XFEExtension.NetCore/CyberComm/CyberCommClient.cs +2 -2
@@ -110,11 +110,11 @@ public class CyberCommClient
110 110 if (receiveResult.MessageType == WebSocketMessageType.Text)
111 111 {
112 112 var receivedMessage = Encoding.UTF8.GetString(receivedBinaryBuffer);
113 MessageReceived?.Invoke(this, new CyberCommClientEventArgsImpl(ClientWebSocket, receivedMessage));
113 MessageReceived?.Invoke(this, new CyberCommClientEventArgsImpl(ClientWebSocket, receivedMessage, receiveResult.EndOfMessage));
114 114 }
115 115 if (receiveResult.MessageType == WebSocketMessageType.Binary)
116 116 {
117 MessageReceived?.Invoke(this, new CyberCommClientEventArgsImpl(ClientWebSocket, receivedBinaryBuffer));
117 MessageReceived?.Invoke(this, new CyberCommClientEventArgsImpl(ClientWebSocket, receivedBinaryBuffer, receiveResult.EndOfMessage));
118 118 }
119 119 if (receiveResult.MessageType == WebSocketMessageType.Close)
120 120 {
Modified XFEExtension.NetCore/CyberComm/CyberCommClientEventArgs.cs +5 -4
@@ -11,7 +11,8 @@ namespace XFEExtension.NetCore.CyberComm;
11 11 /// <param name="TextMessage"> 文本消息 </param>
12 12 /// <param name="Exception"> 异常消息(如果有的话) </param>
13 13 /// <param name="BinaryMessage"> 二进制消息 </param>
14 public abstract record CyberCommClientEventArgs(BackMessageType MessageType, ClientWebSocket CurrentWebSocket, string? TextMessage, XFECyberCommException? Exception, byte[]? BinaryMessage)
14 /// <param name="EndOfMessage">是否发送完成</param>
15 public abstract record CyberCommClientEventArgs(BackMessageType MessageType, ClientWebSocket CurrentWebSocket, string? TextMessage, XFECyberCommException? Exception, byte[]? BinaryMessage, bool EndOfMessage)
15 16 {
16 17 /// <summary>
17 18 /// 发送文本消息
@@ -46,13 +47,13 @@ public abstract record CyberCommClientEventArgs(BackMessageType MessageType, Cli
46 47 throw new XFECyberCommException("关闭客户端连接时出现异常", ex);
47 48 }
48 49 }
49 internal CyberCommClientEventArgs(ClientWebSocket clientWebSocket, string message) : this(BackMessageType.Text, clientWebSocket, message, null, null)
50 internal CyberCommClientEventArgs(ClientWebSocket clientWebSocket, string message, bool endOfMessage) : this(BackMessageType.Text, clientWebSocket, message, null, null, endOfMessage)
50 51 {
51 52 }
52 internal CyberCommClientEventArgs(ClientWebSocket clientWebSocket, byte[] bytes) : this(BackMessageType.Binary, clientWebSocket, null, null, bytes)
53 internal CyberCommClientEventArgs(ClientWebSocket clientWebSocket, byte[] bytes, bool endOfMessage) : this(BackMessageType.Binary, clientWebSocket, null, null, bytes, endOfMessage)
53 54 {
54 55 }
55 internal CyberCommClientEventArgs(ClientWebSocket clientWebSocket, XFECyberCommException ex) : this(BackMessageType.Error, clientWebSocket, null, ex, null)
56 internal CyberCommClientEventArgs(ClientWebSocket clientWebSocket, XFECyberCommException ex) : this(BackMessageType.Error, clientWebSocket, null, ex, null, true)
56 57 {
57 58 }
58 59 }
Modified XFEExtension.NetCore/CyberComm/CyberCommClientEventArgsImpl.cs +2 -2
@@ -4,7 +4,7 @@ namespace XFEExtension.NetCore.CyberComm;
4 4
5 5 record class CyberCommClientEventArgsImpl : CyberCommClientEventArgs
6 6 {
7 internal CyberCommClientEventArgsImpl(ClientWebSocket clientWebSocket, string message) : base(clientWebSocket, message) { }
8 internal CyberCommClientEventArgsImpl(ClientWebSocket clientWebSocket, byte[] bytes) : base(clientWebSocket, bytes) { }
7 internal CyberCommClientEventArgsImpl(ClientWebSocket clientWebSocket, string message, bool endOfMessage) : base(clientWebSocket, message, endOfMessage) { }
8 internal CyberCommClientEventArgsImpl(ClientWebSocket clientWebSocket, byte[] bytes, bool endOfMessage) : base(clientWebSocket, bytes, endOfMessage) { }
9 9 internal CyberCommClientEventArgsImpl(ClientWebSocket clientWebSocket, XFECyberCommException ex) : base(clientWebSocket, ex) { }
10 10 }
Modified XFEExtension.NetCore/CyberComm/CyberCommServer.cs +1 -1
@@ -147,7 +147,7 @@ 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, true));
150 MessageReceived?.Invoke(this, new CyberCommServerEventArgsImpl(requestURL, webSocket, new XFECyberCommException("与客户端端通讯期间发生异常", ex), clientIP, wsHeader));
151 151 break;
152 152 }
153 153 }
Modified XFEExtension.NetCore/CyberComm/CyberCommServerEventArgs.cs +1 -1
@@ -89,7 +89,7 @@ public abstract record CyberCommServerEventArgs(Uri? RequestURL, BackMessageType
89 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)
90 90 {
91 91 }
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 internal CyberCommServerEventArgs(Uri? requestURL, WebSocket webSocket, XFECyberCommException ex, string ipAddress, NameValueCollection wsHeader) : this(requestURL, BackMessageType.Error, webSocket, wsHeader, ex, ipAddress, null, null, true)
93 93 {
94 94 }
95 95 }
Modified XFEExtension.NetCore/CyberComm/CyberCommServerEventArgsImpl.cs +1 -1
@@ -7,5 +7,5 @@ record class CyberCommServerEventArgsImpl : CyberCommServerEventArgs
7 7 {
8 8 internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, string message, string ipAddress, NameValueCollection wsHeader, bool endOfMessage) : base(requestURL, webSocket, message, ipAddress, wsHeader, endOfMessage) { }
9 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) { }
10 internal CyberCommServerEventArgsImpl(Uri? requestURL, WebSocket webSocket, XFECyberCommException ex, string ipAddress, NameValueCollection wsHeader) : base(requestURL, webSocket, ex, ipAddress, wsHeader) { }
11 11 }
Modified XFEExtension.NetCore/XFEExtension.NetCore.csproj +4 -10
@@ -5,7 +5,7 @@
5 5 <ImplicitUsings>enable</ImplicitUsings>
6 6 <Nullable>enable</Nullable>
7 7 <GenerateDocumentationFile>True</GenerateDocumentationFile>
8 <Version>3.3.3</Version>
8 <Version>3.3.4</Version>
9 9 <Title>XFEExtension</Title>
10 10 <RepositoryUrl>https://github.com/XFEstudio/XFEExtension</RepositoryUrl>
11 11 <AnalysisLevel>latest</AnalysisLevel>
@@ -21,15 +21,9 @@
21 21 <PackageReleaseNotes>
22 22 ## 调整
23 23
24 增强事件参数以支持消息结束状态
25
26 在 `CyberCommServer.cs` 中,`ClientConnected`、`MessageReceived` 和 `ConnectionClosed` 事件调用中新增了 `bool` 类型的 `endOfMessage` 参数,以指示消息是否结束。
27
28 在 `CyberCommServerEventArgs.cs` 中,更新了 `CyberCommServerEventArgs` 记录类型的构造函数,新增了 `endOfMessage` 参数。
29
30 在 `CyberCommServerEventArgsImpl.cs` 中,修改了 `CyberCommServerEventArgsImpl` 类的构造函数,以支持新的 `endOfMessage` 参数。
31
32 更新项目文件 `XFEExtension.NetCore.csproj` 中的版本号,从 `3.3.2` 升级到 `3.3.3`。
24 更新事件参数以支持消息完成状态
25
26 在 `CyberCommClient` 和 `CyberCommServer` 相关类中,修改了 `MessageReceived` 事件的调用,添加了 `EndOfMessage` 参数以指示消息是否已发送完成。同时,更新了构造函数以支持新的参数,并去掉了不必要的 `endOfMessage` 参数,确保在处理异常时的参数传递更加清晰。
33 27
34 28 ## 新增
35 29