XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
namespace XFEExtension.NetCore.CyberComm.XCCNetWork;
/// <summary>
/// XCC网络通讯
/// </summary>
public class XCCNetWork
{
private readonly XCCNetWorkBase _xCCNetWorkBase;
/// <summary>
/// XCC当前群组
/// </summary>
public List<XCCGroup> Groups { get; set; }
/// <summary>显式配置的 XCC WSS 端点。</summary>
public Uri? ServerUri { get; set; }
/// <summary>
/// 明文消息接收时触发
/// </summary>
public event EventHandler<XCCTextMessageReceivedEventArgs> TextMessageReceived
{
add
{
_xCCNetWorkBase.TextMessageReceived += value;
}
remove
{
_xCCNetWorkBase.TextMessageReceived -= value;
}
}
/// <summary>
/// 二进制消息接收时触发
/// </summary>
public event EventHandler<XCCBinaryMessageReceivedEventArgs> BinaryMessageReceived
{
add
{
_xCCNetWorkBase.BinaryMessageReceived += value;
}
remove
{
_xCCNetWorkBase.BinaryMessageReceived -= value;
}
}
/// <summary>
/// 异常消息接收时触发
/// </summary>
public event EventHandler<XCCExceptionMessageReceivedEventArgs> ExceptionMessageReceived
{
add
{
_xCCNetWorkBase.ExceptionMessageReceived += value;
}
remove
{
_xCCNetWorkBase.ExceptionMessageReceived -= value;
}
}
/// <summary>
/// 连接关闭时触发
/// </summary>
public event EventHandler<XCCConnectionClosedEventArgs> ConnectionClosed
{
add
{
_xCCNetWorkBase.ConnectionClosed += value;
}
remove
{
_xCCNetWorkBase.ConnectionClosed -= value;
}
}
/// <summary>
/// 连接成功时触发
/// </summary>
public event EventHandler<XCCConnectedEventArgs> Connected
{
add
{
_xCCNetWorkBase.Connected += value;
}
remove
{
_xCCNetWorkBase.Connected -= value;
}
}
/// <summary>
/// 创建XCC群组会话
/// </summary>
/// <param name="groupId">群组名称</param>
/// <param name="sender">发送者</param>
/// <returns></returns>
public XCCGroup CreateGroup(string groupId, string sender)
{
var serverUri = ServerUri ?? throw new InvalidOperationException("必须先配置 XCC ServerUri,且生产环境应使用 wss");
var group = new XCCGroupImpl(Guid.NewGuid().ToString(), groupId, sender, serverUri, _xCCNetWorkBase);
Groups.Add(group);
return group;
}
/// <summary>
/// XCC网络通信会话
/// </summary>
public XCCNetWork()
{
_xCCNetWorkBase = new XCCNetWorkBase();
Groups = [];
}
/// <summary>使用显式端点创建 XCC 会话。</summary>
public XCCNetWork(Uri serverUri) : this()
{
if (serverUri.Scheme is not ("ws" or "wss")) throw new ArgumentException("XCC 端点必须使用 ws 或 wss", nameof(serverUri));
ServerUri = serverUri;
}
}
namespace XFEExtension.NetCore.CyberComm.XCCNetWork;
/// <summary>
/// XCC网络通讯
/// </summary>
public class XCCNetWork
{
private readonly XCCNetWorkBase _xCCNetWorkBase;
/// <summary>
/// XCC当前群组
/// </summary>
public List<XCCGroup> Groups { get; set; }
/// <summary>显式配置的 XCC WSS 端点。</summary>
public Uri? ServerUri { get; set; }
/// <summary>
/// 明文消息接收时触发
/// </summary>
public event EventHandler<XCCTextMessageReceivedEventArgs> TextMessageReceived
{
add
{
_xCCNetWorkBase.TextMessageReceived += value;
}
remove
{
_xCCNetWorkBase.TextMessageReceived -= value;
}
}
/// <summary>
/// 二进制消息接收时触发
/// </summary>
public event EventHandler<XCCBinaryMessageReceivedEventArgs> BinaryMessageReceived
{
add
{
_xCCNetWorkBase.BinaryMessageReceived += value;
}
remove
{
_xCCNetWorkBase.BinaryMessageReceived -= value;
}
}
/// <summary>
/// 异常消息接收时触发
/// </summary>
public event EventHandler<XCCExceptionMessageReceivedEventArgs> ExceptionMessageReceived
{
add
{
_xCCNetWorkBase.ExceptionMessageReceived += value;
}
remove
{
_xCCNetWorkBase.ExceptionMessageReceived -= value;
}
}
/// <summary>
/// 连接关闭时触发
/// </summary>
public event EventHandler<XCCConnectionClosedEventArgs> ConnectionClosed
{
add
{
_xCCNetWorkBase.ConnectionClosed += value;
}
remove
{
_xCCNetWorkBase.ConnectionClosed -= value;
}
}
/// <summary>
/// 连接成功时触发
/// </summary>
public event EventHandler<XCCConnectedEventArgs> Connected
{
add
{
_xCCNetWorkBase.Connected += value;
}
remove
{
_xCCNetWorkBase.Connected -= value;
}
}
/// <summary>
/// 创建XCC群组会话
/// </summary>
/// <param name="groupId">群组名称</param>
/// <param name="sender">发送者</param>
/// <returns></returns>
public XCCGroup CreateGroup(string groupId, string sender)
{
var serverUri = ServerUri ?? throw new InvalidOperationException("必须先配置 XCC ServerUri,且生产环境应使用 wss");
var group = new XCCGroupImpl(Guid.NewGuid().ToString(), groupId, sender, serverUri, _xCCNetWorkBase);
Groups.Add(group);
return group;
}
/// <summary>
/// XCC网络通信会话
/// </summary>
public XCCNetWork()
{
_xCCNetWorkBase = new XCCNetWorkBase();
Groups = [];
}
/// <summary>使用显式端点创建 XCC 会话。</summary>
public XCCNetWork(Uri serverUri) : this()
{
if (serverUri.Scheme is not ("ws" or "wss")) throw new ArgumentException("XCC 端点必须使用 ws 或 wss", nameof(serverUri));
ServerUri = serverUri;
}
}