XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFE各类拓展.NetCore/CyberComm/CyberCommClient.cs
+6
-6
Modified
XFE各类拓展.NetCore/CyberComm/CyberCommGroup.cs
+5
-3
Modified
XFE各类拓展.NetCore/CyberComm/CyberCommGroupController.cs
+3
-3
Modified
XFE各类拓展.NetCore/CyberComm/CyberCommServer.cs
+4
-4
Modified
XFE各类拓展.NetCore/XFEChatGPT/ChatGPTInnerClass/DefaultClass/MessageChoice.cs
+3
-3
Modified
XFE各类拓展.NetCore/XFEChatGPT/ChatGPTInnerClass/HelperClass/PrivateMessageChoice.cs
+2
-2
Modified
XFE各类拓展.NetCore/XFEChatGPT/ChatGPTInnerClass/HelperClass/PrivateXFEGPTMessageReceivedEventArgs.cs
+1
-5
Modified
XFE各类拓展.NetCore/XFEChatGPT/MemorableXFEChatGPT.cs
+3
-3
Modified
XFE各类拓展.NetCore/XFEChatGPT/OtherInnerClass/MessageIdAndThread.cs
+3
-8
Modified
XFE各类拓展.NetCore/XFEChatGPT/OtherInnerClass/MessageIdDialogIdAndThread.cs
+2
-6
Modified
XFE各类拓展.NetCore/XFEChatGPT/XFEChatGPT.cs
+2
-2
XFEstudio/XFEExtension
修改多处格式
0ca15cc
代码差异
11 个文件
+34
-45
@@ -14,7 +14,7 @@ namespace XFE各类拓展.NetCore.CyberComm
14
14
/// <summary>
15
15
/// 指定的WS服务器URL
16
16
/// </summary>
17
public string ServerURL { get; set; }
17
public string? ServerURL { get; set; }
18
18
/// <summary>
19
19
/// 是否已连接
20
20
/// </summary>
@@ -50,7 +50,7 @@ namespace XFE各类拓展.NetCore.CyberComm
50
50
/// <summary>
51
51
/// WebSocket客户端
52
52
/// </summary>
53
public ClientWebSocket ClientWebSocket { get; private set; }
53
public ClientWebSocket? ClientWebSocket { get; private set; }
54
54
#endregion
55
55
#region 公有方法
56
56
/// <summary>
@@ -61,10 +61,10 @@ namespace XFE各类拓展.NetCore.CyberComm
61
61
{
62
62
StartConnect:
63
63
ClientWebSocket = new ClientWebSocket();
64
Uri serverUri = new Uri(ServerURL);
65
64
reconnectTimes++;
66
65
try
67
66
{
67
Uri serverUri = new(ServerURL!);
68
68
await ClientWebSocket.ConnectAsync(serverUri, CancellationToken.None);
69
69
}
70
70
catch (Exception ex)
@@ -163,7 +163,7 @@ namespace XFE各类拓展.NetCore.CyberComm
163
163
try
164
164
{
165
165
byte[] sendBuffer = Encoding.UTF8.GetBytes(message);
166
await ClientWebSocket.SendAsync(new ArraySegment<byte>(sendBuffer), WebSocketMessageType.Text, true, CancellationToken.None);
166
await ClientWebSocket!.SendAsync(new ArraySegment<byte>(sendBuffer), WebSocketMessageType.Text, true, CancellationToken.None);
167
167
}
168
168
catch (Exception ex)
169
169
{
@@ -179,7 +179,7 @@ namespace XFE各类拓展.NetCore.CyberComm
179
179
{
180
180
try
181
181
{
182
await ClientWebSocket.SendAsync(new ArraySegment<byte>(message), WebSocketMessageType.Binary, true, CancellationToken.None);
182
await ClientWebSocket!.SendAsync(new ArraySegment<byte>(message), WebSocketMessageType.Binary, true, CancellationToken.None);
183
183
}
184
184
catch (Exception ex)
185
185
{
@@ -192,7 +192,7 @@ namespace XFE各类拓展.NetCore.CyberComm
192
192
/// <returns></returns>
193
193
public async Task CloseCyberCommClient()
194
194
{
195
await ClientWebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
195
await ClientWebSocket!.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
196
196
}
197
197
#endregion
198
198
#region 构造函数
@@ -26,7 +26,9 @@ namespace XFE各类拓展.NetCore.CyberComm
26
26
/// <param name="webSocket">客户端</param>
27
27
public void Remove(WebSocket webSocket)
28
28
{
29
cyberCommList.Remove(cyberCommList.Find(x => x.CurrentWebSocket == webSocket));
29
var cyberCommServerEventArgs = cyberCommList.Find(x => x.CurrentWebSocket == webSocket);
30
if (cyberCommServerEventArgs is not null)
31
cyberCommList.Remove(cyberCommServerEventArgs);
30
32
}
31
33
/// <summary>
32
34
/// 移除指定索引的客户端
@@ -58,7 +60,7 @@ namespace XFE各类拓展.NetCore.CyberComm
58
60
/// </summary>
59
61
/// <param name="findFunc">查找</param>
60
62
/// <returns>客户端</returns>
61
public CyberCommServerEventArgs this[Predicate<CyberCommServerEventArgs> findFunc]
63
public CyberCommServerEventArgs? this[Predicate<CyberCommServerEventArgs> findFunc]
62
64
{
63
65
get
64
66
{
@@ -71,7 +73,7 @@ namespace XFE各类拓展.NetCore.CyberComm
71
73
/// <param name="message">群发文本消息</param>
72
74
public async Task SendGroupTextMessage(string message)
73
75
{
74
List<Task> tasks = new List<Task>();
76
List<Task> tasks = [];
75
77
foreach (CyberCommServerEventArgs cyberCommServerEventArgs in cyberCommList)
76
78
{
77
79
tasks.Add(cyberCommServerEventArgs.ReplyMessage(message));
@@ -77,7 +77,7 @@
77
77
/// </summary>
78
78
/// <param name="GroupId"></param>
79
79
/// <returns></returns>
80
public CyberCommGroup this[string GroupId]
80
public CyberCommGroup? this[string GroupId]
81
81
{
82
82
get
83
83
{
@@ -98,7 +98,7 @@
98
98
/// <param name="message">发送的文本消息</param>
99
99
public async Task SendGroupTextMessage(string GroupId, string message)
100
100
{
101
CyberCommGroup commGroup = this[GroupId];
101
var commGroup = this[GroupId];
102
102
if (commGroup != null)
103
103
{
104
104
await commGroup.SendGroupTextMessage(message);
@@ -111,7 +111,7 @@
111
111
/// <param name="bytes">发送的二进制消息</param>
112
112
public async Task SendGroupBinaryMessage(string GroupId, byte[] bytes)
113
113
{
114
CyberCommGroup commGroup = this[GroupId];
114
var commGroup = this[GroupId];
115
115
if (commGroup != null)
116
116
{
117
117
await commGroup.SendGroupBinaryMessage(bytes);
@@ -19,19 +19,19 @@ namespace XFE各类拓展.NetCore.CyberComm
19
19
/// <summary>
20
20
/// 收到消息时触发
21
21
/// </summary>
22
public event EventHandler<CyberCommServerEventArgs> MessageReceived;
22
public event EventHandler<CyberCommServerEventArgs>? MessageReceived;
23
23
/// <summary>
24
24
/// 客户端连接时触发
25
25
/// </summary>
26
public event EventHandler<CyberCommServerEventArgs> ClientConnected;
26
public event EventHandler<CyberCommServerEventArgs>? ClientConnected;
27
27
/// <summary>
28
28
/// 服务器启动时触发
29
29
/// </summary>
30
public event EventHandler ServerStarted;
30
public event EventHandler? ServerStarted;
31
31
/// <summary>
32
32
/// 连接关闭时触发
33
33
/// </summary>
34
public event EventHandler<CyberCommServerEventArgs> ConnectionClosed;
34
public event EventHandler<CyberCommServerEventArgs>? ConnectionClosed;
35
35
/// <summary>
36
36
/// WebSocket服务器
37
37
/// </summary>
@@ -16,7 +16,7 @@
16
16
/// <summary>
17
17
/// 结束原因
18
18
/// </summary>
19
public string finishReason { get; private set; }
19
public string FinishReason { get; private set; }
20
20
/// <summary>
21
21
/// 消息索引
22
22
/// </summary>
@@ -32,7 +32,7 @@
32
32
{
33
33
this.Delta = delta;
34
34
this.Message = message;
35
this.finishReason = finishReason;
35
this.FinishReason = finishReason;
36
36
this.Index = index;
37
37
}
38
38
/// <summary>
@@ -44,7 +44,7 @@
44
44
public MessageChoice(GPTMessage message, string finishReason, int index)
45
45
{
46
46
this.Message = message;
47
this.finishReason = finishReason;
47
this.FinishReason = finishReason;
48
48
this.Index = index;
49
49
}
50
50
}
@@ -4,7 +4,7 @@ namespace XFE各类拓展.NetCore.XFEChatGPT.ChatGPTInnerClass.HelperClass
4
4
{
5
5
class PrivateMessageChoice : MessageChoice
6
6
{
7
public PrivateMessageChoice(GPTMessage delta, GPTMessage message, string finish_reason, int index) : base(delta, message, finish_reason, index) { }
8
public PrivateMessageChoice(GPTMessage message, string finish_reason, int index) : base(message, finish_reason, index) { }
7
public PrivateMessageChoice(GPTMessage delta, GPTMessage message, string finishReason, int index) : base(delta, message, finishReason, index) { }
8
public PrivateMessageChoice(GPTMessage message, string finishReason, int index) : base(message, finishReason, index) { }
9
9
}
10
10
}
@@ -1,10 +1,6 @@
1
1
namespace XFE各类拓展.NetCore.XFEChatGPT.ChatGPTInnerClass.HelperClass
2
2
{
3
class PrivateXFEGPTMessageReceivedEventArgs : XFEGPTMessageReceivedEventArgs
3
class PrivateXFEGPTMessageReceivedEventArgs(string message, string id, GenerateState generateState) : XFEGPTMessageReceivedEventArgs(message, id, generateState)
4
4
{
5
public PrivateXFEGPTMessageReceivedEventArgs(string message, string id, GenerateState generateState) : base(message, id, generateState)
6
{
7
8
}
9
5
}
10
6
}
@@ -360,9 +360,9 @@ namespace XFE各类拓展.NetCore.XFEChatGPT
360
360
private async void StartGetGPTMessage(object sender)
361
361
{
362
362
var messageIdAndThread = (MessageIdDialogIdAndThread)sender;
363
string dialogId = messageIdAndThread.dialogId;
364
string messageId = messageIdAndThread.messageId;
365
Thread thread = messageIdAndThread.thread;
363
string dialogId = messageIdAndThread.DialogId;
364
string messageId = messageIdAndThread.MessageId;
365
Thread thread = messageIdAndThread.Thread;
366
366
var nowDialog = xFEGPTMemoryDialog[dialogId];
367
367
if (nowDialog.StreamMode)
368
368
{
@@ -1,13 +1,8 @@
1
1
namespace XFE各类拓展.NetCore.XFEChatGPT.OtherInnerClass
2
2
{
3
class MessageIdAndThread
3
class MessageIdAndThread(string messageId, Thread thread)
4
4
{
5
public string messageId { get; set; }
6
public Thread thread { get; set; }
7
public MessageIdAndThread(string messageId, Thread thread)
8
{
9
this.messageId = messageId;
10
this.thread = thread;
11
}
5
public string MessageId { get; set; } = messageId;
6
public Thread Thread { get; set; } = thread;
12
7
}
13
8
}
@@ -1,11 +1,7 @@
1
1
namespace XFE各类拓展.NetCore.XFEChatGPT.OtherInnerClass
2
2
{
3
class MessageIdDialogIdAndThread : MessageIdAndThread
3
class MessageIdDialogIdAndThread(string messageId, string dialogId, Thread thread) : MessageIdAndThread(messageId, thread)
4
4
{
5
public string dialogId { get; set; }
6
public MessageIdDialogIdAndThread(string messageId, string dialogId, Thread thread) : base(messageId, thread)
7
{
8
this.dialogId = dialogId;
9
}
5
public string DialogId { get; set; } = dialogId;
10
6
}
11
7
}
@@ -253,8 +253,8 @@ namespace XFE各类拓展.NetCore.XFEChatGPT
253
253
private async void StartGetGPTMessage(object sender)
254
254
{
255
255
var messageIdAndThread = (MessageIdAndThread)sender;
256
string messageId = messageIdAndThread.messageId;
257
Thread thread = messageIdAndThread.thread;
256
string messageId = messageIdAndThread.MessageId;
257
Thread thread = messageIdAndThread.Thread;
258
258
if (StreamMode)
259
259
{
260
260
bool isStarted = false;