XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFE各类拓展/XCCNetWork.cs
+28
-6
Modified
XFE各类拓展/XFEChatGPT.cs
+0
-4
XFEstudio/XFEExtension
为文件传输协议添加更多头标识信息,现在在传输文件的时候可以获取文件发送的时间和是否为历史文件
e35c04d
代码差异
2 个文件
+28
-10
@@ -421,8 +421,12 @@ namespace XFE各类拓展.CyberComm.XCCNetWork
421
421
var xFEBuffer = XFEBuffer.ToXFEBuffer(receivedBinaryBuffer);
422
422
var sender = Encoding.UTF8.GetString(xFEBuffer["Sender"]);
423
423
var signature = Encoding.UTF8.GetString(xFEBuffer["Type"]);
424
if (signature == "callback")
425
return;
424
426
var messageId = Encoding.UTF8.GetString(xFEBuffer["ID"]);
425
byte[] unPackedBuffer = signature == "callback" ? null : xFEBuffer[sender];
427
bool isHistory = Encoding.UTF8.GetString(xFEBuffer["IsHistory"]) == "True";
428
var sendTime = DateTime.Parse(Encoding.UTF8.GetString(xFEBuffer["SendTime"]));
429
byte[] unPackedBuffer = xFEBuffer[sender];
426
430
switch (signature)
427
431
{
428
432
case "text":
@@ -447,7 +451,7 @@ namespace XFE各类拓展.CyberComm.XCCNetWork
447
451
messageType = XCCBinaryMessageType.Binary;
448
452
break;
449
453
}
450
workBase.binaryMessageReceived?.Invoke(this, new XCCBinaryMessageReceivedEventArgsImpl(this, TextMessageClientWebSocket, FileTransportClientWebSocket, XCCClientType.FileTransportClient, sender, messageId, unPackedBuffer, messageType, signature));
454
workBase.binaryMessageReceived?.Invoke(this, new XCCBinaryMessageReceivedEventArgsImpl(this, TextMessageClientWebSocket, FileTransportClientWebSocket, XCCClientType.FileTransportClient, sender, messageId, unPackedBuffer, messageType, signature, sendTime, isHistory));
451
455
}
452
456
catch (Exception ex)
453
457
{
@@ -871,6 +875,12 @@ namespace XFE各类拓展.CyberComm.XCCNetWork
871
875
if (File.Exists(filePath))
872
876
fileBuffer = File.ReadAllBytes(filePath);
873
877
XCCFile xCCFile;
878
if (xCCFileDictionary.ContainsKey(xCCMessage.MessageId))
879
{
880
if (!xCCFileDictionary[xCCMessage.MessageId].Loaded && fileBuffer != null)
881
xCCFileDictionary[xCCMessage.MessageId].LoadFile(fileBuffer);
882
return xCCFileDictionary[xCCMessage.MessageId];
883
}
874
884
switch (xCCMessage.MessageType)
875
885
{
876
886
case XCCTextMessageType.Image:
@@ -1027,8 +1037,10 @@ namespace XFE各类拓展.CyberComm.XCCNetWork
1027
1037
default:
1028
1038
break;
1029
1039
}
1030
xCCFileDictionary.Add(e.MessageId, new XCCFile(e.GroupId, e.MessageId, fileType, e.Sender, null, e.BinaryMessage));
1031
FileReceived?.Invoke(e.)
1040
var xCCFile = new XCCFile(e.GroupId, e.MessageId, fileType, e.Sender, e.SendTime, e.BinaryMessage);
1041
xCCFileDictionary.Add(e.MessageId, xCCFile);
1042
if (!e.IsHistory)
1043
FileReceived?.Invoke(e.IsHistory, xCCFile);
1032
1044
}
1033
1045
}
1034
1046
/// <summary>
@@ -1388,11 +1400,21 @@ namespace XFE各类拓展.CyberComm.XCCNetWork
1388
1400
/// 二进制消息
1389
1401
/// </summary>
1390
1402
public byte[] BinaryMessage { get; }
1391
internal XCCBinaryMessageReceivedEventArgs(XCCGroup group, ClientWebSocket textMessageClientWebSocket, ClientWebSocket fileTransportClientWebSocket, XCCClientType xCCClientType, string sender, string messageId, byte[] buffer, XCCBinaryMessageType messageType, string signature) : base(group, textMessageClientWebSocket, fileTransportClientWebSocket, xCCClientType, sender, messageId)
1403
/// <summary>
1404
/// 发送时间
1405
/// </summary>
1406
public DateTime SendTime { get; }
1407
/// <summary>
1408
/// 是否为历史消息
1409
/// </summary>
1410
public bool IsHistory { get; }
1411
internal XCCBinaryMessageReceivedEventArgs(XCCGroup group, ClientWebSocket textMessageClientWebSocket, ClientWebSocket fileTransportClientWebSocket, XCCClientType xCCClientType, string sender, string messageId, byte[] buffer, XCCBinaryMessageType messageType, string signature, DateTime sendTime, bool isHistory) : base(group, textMessageClientWebSocket, fileTransportClientWebSocket, xCCClientType, sender, messageId)
1392
1412
{
1393
1413
BinaryMessage = buffer;
1394
1414
MessageType = messageType;
1395
1415
Signature = signature;
1416
SendTime = sendTime;
1417
IsHistory = isHistory;
1396
1418
}
1397
1419
}
1398
1420
/// <summary>
@@ -1492,7 +1514,7 @@ namespace XFE各类拓展.CyberComm.XCCNetWork
1492
1514
}
1493
1515
class XCCBinaryMessageReceivedEventArgsImpl : XCCBinaryMessageReceivedEventArgs
1494
1516
{
1495
internal XCCBinaryMessageReceivedEventArgsImpl(XCCGroup group, ClientWebSocket textMessageClientWebSocket, ClientWebSocket fileTransportClientWebSocket, XCCClientType xCCClientType, string sender, string messageId, byte[] buffer, XCCBinaryMessageType messageType, string signature) : base(group, textMessageClientWebSocket, fileTransportClientWebSocket, xCCClientType, sender, messageId, buffer, messageType, signature) { }
1517
internal XCCBinaryMessageReceivedEventArgsImpl(XCCGroup group, ClientWebSocket textMessageClientWebSocket, ClientWebSocket fileTransportClientWebSocket, XCCClientType xCCClientType, string sender, string messageId, byte[] buffer, XCCBinaryMessageType messageType, string signature, DateTime sendTime, bool isHistory) : base(group, textMessageClientWebSocket, fileTransportClientWebSocket, xCCClientType, sender, messageId, buffer, messageType, signature, sendTime, isHistory) { }
1496
1518
}
1497
1519
class XCCExceptionMessageReceivedEventArgsImpl : XCCExceptionMessageReceivedEventArgs
1498
1520
{
@@ -67,22 +67,18 @@ namespace XFE各类拓展.XFEChatGPT
67
67
/// <summary>
68
68
/// 比任何 GPT-3.5 型号都更强大,能够执行更复杂的任务,并针对聊天进行了优化。将在发布 2 周后使用我们最新的模型迭代进行更新。
69
69
/// </summary>
70
[Obsolete("该模型暂时不可使用", true)]
71
70
gpt4,
72
71
/// <summary>
73
72
/// 13 年 2023 月 3 日带有函数调用数据的快照。与gpt-4不同,此模型不会收到更新,并将在新版本发布3个月后弃用。基于gpt-4
74
73
/// </summary>
75
[Obsolete("该模型暂时不可使用", true)]
76
74
gpt40613,
77
75
/// <summary>
78
76
/// 功能与gpt4基本模型相同,但上下文长度是其 4 倍。将使用最新的模型迭代进行更新。基于gpt-4
79
77
/// </summary>
80
[Obsolete("该模型暂时不可使用", true)]
81
78
gpt432k,
82
79
/// <summary>
83
80
/// 13 年 2023 月 3 日的快照。与GPT-4-32K不同,此模型不会收到更新,并将在新版本发布 3 个月后弃用。基于gpt-4-32k
84
81
/// </summary>
85
[Obsolete("该模型暂时不可使用", true)]
86
82
gpt432k0613,
87
83
/// <summary>
88
84
/// 功能最强大的 GPT-3.5 型号,针对聊天进行了优化,成本仅为 .将在发布 1 周后使用最新的模型迭代进行更新。