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

XFEExtension

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

公开
关注 0 Fork 0 Star 0
UTF-8
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>
    /// 明文消息接收时触发
    /// </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 group = new XCCGroupImpl(Guid.NewGuid().ToString(), groupId, sender, xCCNetWorkBase);
        Groups.Add(group);
        return group;
    }
    /// <summary>
    /// XCC网络通信会话
    /// </summary>
    public XCCNetWork()
    {
        xCCNetWorkBase = new XCCNetWorkBase();
        Groups = [];
    }
}