<?xml version="1.0"?>
<doc>
    <assembly>
        <name>ESFramework.MSide</name>
    </assembly>
    <members>
        <member name="T:ESFramework.AgileTcpListener">
            <summary>
            用于封装TCP监听者及监听线程。支持IPV6。
            zhuweisky 2005.05.23
            </summary>
        </member>
        <member name="E:ESFramework.AgileTcpListener.TcpConnectionEstablished">
            <summary>
            当新的Tcp连接成功建立时，会触发此事件	
            </summary>
        </member>
        <member name="P:ESFramework.AgileTcpListener.SocketSendBuffSize">
            <summary>
            Socket(网卡)发送缓冲区的大小。默认为64K。
            </summary>
        </member>
        <member name="P:ESFramework.AgileTcpListener.SocketReceiveBuffSize">
            <summary>
            SockeetReceiveBuffSize 网卡接收缓冲区大小。默认为64K。
            </summary>
        </member>
        <member name="M:ESFramework.AgileTcpListener.FillKeepAliveStruct(System.Int32,System.Int32,System.Int32)">
            <summary>
            FillKeepAliveStruct 得到Keep-Alive结构值
            </summary>
            <param name="onOff">是否启用Keep-Alive</param>
            <param name="keepAliveTimeInMSec">多长时间后开始第一次探测ms</param>
            <param name="keepAliveIntervalInMSec">探测时间间隔ms</param>
            <returns></returns>
        </member>
        <member name="T:ESFramework.IConnectionCountGetter">
            <summary>
            获取当前已经存在的TCP连接数
            </summary>
        </member>
        <member name="F:ESFramework.AuthorizeType.NormalInstance">
            <summary>
            如果在封闭的局网，可正常启动；一旦连接到公网，则验证授权，授权通过后，才能继续正常工作。
            </summary>
        </member>
        <member name="F:ESFramework.AuthorizeType.JustOnInternet">
            <summary>
            只能在公网运行（必须通过授权服务器验证后，才能启动）
            </summary>
        </member>
        <member name="F:ESFramework.AuthorizeType.SecurityDog">
            <summary>
            使用加密狗才可启动。
            </summary>
        </member>
        <member name="F:ESFramework.AuthorizeType.AuthorizedSN">
            <summary>
            授权序列（硬盘和mac相关信息）
            </summary>
        </member>
        <member name="F:ESFramework.AuthorizeType.JustInLAN">
            <summary>
            局网买断
            </summary>
        </member>
        <member name="F:ESFramework.AuthorizeType.SecurityDogAndSN">
            <summary>
            加密狗结合SN。可支持在指定SN的服务器上无加密狗运行24小时。
            </summary>
        </member>
        <member name="T:ESFramework.AuthorizationVerifier">
            <summary>
            ESFramework授权验证。
            </summary>
        </member>
        <member name="M:ESFramework.AuthorizationVerifier.SetAuthorizedUser(System.String,System.String)">
            <summary>
            被授权的用户需要在程序初始化开始时先调用该方法注册。如果不调用此方法注册，则将以Free版本运行。        
            </summary>       
        </member>
        <member name="F:ESFramework.AuthorizationVerifyMode.UserID">
            <summary>
            用于按实例授权。
            </summary>
        </member>
        <member name="F:ESFramework.AuthorizationVerifyMode.PublicTokenKey">
            <summary>
            用于买断的情况。
            </summary>
        </member>
        <member name="M:ESFramework.AuthorizedSNChecker.CheckAuthorizedSN_Old(System.String)">
            <summary>
            验证机器信息（硬盘ID、MAC地址）
            </summary>        
        </member>
        <member name="M:ESFramework.AuthorizedSNChecker.GetHardDiskID">
            <summary>
            取第一块硬盘编号
            </summary>        
        </member>
        <member name="M:ESFramework.AuthorizedSNChecker.GetNetCardMAC">
            <summary>
            获取网卡MAC地址
            </summary>      
        </member>
        <member name="M:ESFramework.AuthorizedSNChecker.GetCpuInfo">
            <summary>
            获取CPU信息
            </summary>        
        </member>
        <member name="F:ESFramework.CpuInfo.Name">
            <summary>
            CPU名称。
            </summary>
        </member>
        <member name="F:ESFramework.CpuInfo.ClockSpeed">
            <summary>
            主频。
            </summary>
        </member>
        <member name="F:ESFramework.CpuInfo.CoreCount">
            <summary>
            核心数目
            </summary>
        </member>
        <member name="M:ESFramework.SnExtender.CancelGuid">
            <summary>
            当撤销授权时，调用此方法。
            </summary>
        </member>
        <member name="M:ESFramework.CycleVerifier.#ctor">
            <summary>
            给客户端BasicPassiveProcesser调用。 2015.05.04
            </summary>
        </member>
        <member name="M:ESFramework.CycleVerifier.IsOnInternet">
            <summary>
            连接授权服务器验证是否已经授权。如果网络异常、调用异常、或未授权都将返回false。
            适用场合:只能在公网使用，不能用于封闭的局域网。
            </summary>        
        </member>
        <member name="M:ESFramework.RemoteDogChecker.ReceiveData(System.Net.Sockets.NetworkStream,System.Int32)">
            <summary>
            ReceiveData 从网络读取指定长度的数据。当读取的字节数为0时，表示连接断开，并抛出IOException异常。
            </summary>	
        </member>
        <member name="M:ESFramework.RemoteDogChecker.ReceiveData(System.Net.Sockets.NetworkStream,System.Byte[],System.Int32,System.Int32)">
            <summary>
            ReceiveData 从网络读取指定长度的数据 ，存放在buff中offset处。当读取的字节数为0时，表示连接断开，并抛出IOException异常。
            </summary>	
        </member>
        <member name="M:ESFramework.WebServiceCaller.QueryPostWebService(System.String,System.String,System.Collections.Hashtable)">
            <summary>
            需要WebService支持Post调用
            </summary>
        </member>
        <member name="M:ESFramework.WebServiceCaller.QueryGetWebService(System.String,System.String,System.Collections.Hashtable)">
            <summary>
            需要WebService支持Get调用
            </summary>
        </member>
        <member name="M:ESFramework.WebServiceCaller.QuerySoapWebService(System.String,System.String,System.Collections.Hashtable)">
            <summary>
            通用WebService调用(Soap),参数Pars为String类型的参数名、参数值
            </summary>
        </member>
        <member name="M:ESFramework.WebServiceCaller.SetWebRequest(System.Net.HttpWebRequest)">
            <summary>
            设置凭证与超时时间
            </summary>
            <param name="request"></param>
        </member>
        <member name="M:ESFramework.WSHelper.InvokeWebService(System.String,System.String,System.Object[])">
            <summary>
            InvokeWebService 动态调用web服务
            </summary>
            <param name="wsUrl">WebService 地址</param>
            <param name="methodname">方法名</param>
            <param name="args">参数，仅仅支持简单类型</param>		
        </member>
        <member name="M:ESFramework.WSHelper.InvokeWebService(System.String,System.String,System.String,System.Object[])">
            <summary>
            InvokeWebService 动态调用web服务
            </summary>
        </member>
        <member name="M:ESFramework.WSHelper.GetWsProxyType(System.String,System.String)">
            <summary>
            GetWsProxyType 获取目标Web服务对应的代理类型
            </summary>
            <param name="wsUrl">目标Web服务的url</param>
            <param name="classname">Web服务的class名称，如果不需要指定，则传入null</param>      
        </member>
        <member name="F:ESFramework.PasswordLevel.Administrator">
            <summary>
            管理密码 0 
            </summary>
        </member>
        <member name="F:ESFramework.PasswordLevel.NormalUser">
            <summary>
            普通用户密码 1
            </summary>
        </member>
        <member name="F:ESFramework.PasswordLevel.AuthenticUser">
            <summary>
            认证密码 2
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.SUCCESS">
            <summary>
            成功
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.OPEN_DEVICE_FAILED">
            <summary>
            打开设备失败 1
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.FIND_DEVICE_FAILED">
            <summary>
            未找到符合条件的设备 2
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.INVALID_PARAMETER">
            <summary>
            参数错误 3
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.INVALID_BLOCK_NUMBER">
            <summary>
            块号错误 4
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.HARDWARE_COMMUNICATE_ERROR">
            <summary>
            与硬件通信错误 5
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.INVALID_PASSWORD">
            <summary>
            密码错误 6
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.ACCESS_DENIED">
            <summary>
            没有权限 7
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.ALREADY_OPENED">
            <summary>
            设备已经打开 8
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.ALLOCATE_MEMORY_FAILED">
            <summary>
            内存分配失败 9
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.INVALID_UPDATE_PACKAGE">
            <summary>
            不合法的升级包 10
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.SYN_ERROR">
            <summary>
            线程同步错误 11
            </summary>
        </member>
        <member name="F:ESFramework.ResultCode.OTHER_ERROR">
            <summary>
            其它未知异常、错误 12
            </summary>
        </member>
        <member name="F:ESFramework.MowayCS.MW_OPEN_SHARE_MODE">
            共享打开  
        </member>
        <member name="F:ESFramework.MowayCS.MW_OPEN_EXCLUSIVE_MODE">
            独占打开 
        </member>
        <member name="F:ESFramework.MowayCS.MW_ALG_TYPE_AES">
            算法类型AES 
        </member>
        <member name="F:ESFramework.MowayCS.MW_ALG_TYPE_DES">
            算法类型DES 
        </member>
        <member name="F:ESFramework.MowayCS.MW_ALG_TYPE_TDES">
            算法类型TDES 
        </member>
        <member name="F:ESFramework.MowayCS.MW_ALG_TYPE_ECC">
            算法类型ECC 
        </member>
        <member name="F:ESFramework.MowayCS.MW_ALG_TYPE_RSA">
            算法类型RSA 
        </member>
        <member name="F:ESFramework.MowayCS.MW_SYM_ALGO_MODE_ECB">
            对称算法模式 ECB mode 
        </member>
        <member name="F:ESFramework.MowayCS.MW_SYM_ALGO_MODE_CBC">
            对称算法模式 CBC mode 
        </member>
        <member name="F:ESFramework.MowayCS.MW_FILE_TYPE_BINARY">
            二进制文件 
        </member>
        <member name="F:ESFramework.MowayCS.MW_FILE_TYPE_KEY">
            密钥文件 
        </member>
        <member name="F:ESFramework.MowayCS.MW_FILE_PRIV_TYPE_USE">
            密钥文件权限类型 
        </member>
        <member name="F:ESFramework.MowayCS.MW_FILE_PRIV_TYPE_READ">
            数据文件用户只读权限类型 
        </member>
        <member name="F:ESFramework.MowayCS.MW_FILE_PRIV_TYPE_READ_WRITE">
            数据文件用户读写权限类型 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_PID">
            获取PID     返回4字节PID 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_SN">
            获取序列号  返回16字节获取序列号 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_PRODUCE_DATE">
            获取生产日期 返回4字节生产日期 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_ALL_CAPACITY">
            获取总容量   返回4字节总容量 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_FREE_CAPACITY">
            获取剩余容量 返回4字节剩余容量 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_VERSION">
            获取设备版本 返回4字节设备版本 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_SHELL_SN">
            获取外壳号   返回第一字节为外壳号长度，后面是外壳号数据。注：最大256字节。 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_STATUS">
            获取设置状态 返回1字节的标识，参见宏定义MW_STATUS_FLAG_PID、MW_STATUS_FLAG_PIN 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_UPDATE_CODE">
            获取设备远程升级码      返回4 字节设备远程升级码 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_UPDATE_CTRL_CODE">
            获取远程升级控制锁标识  返回1字节标识 
        </member>
        <member name="F:ESFramework.MowayCS.MW_GET_INFO_ITEM_ALL">
            获取所有信息，返回MW_DEVICE_ALL_ITEM_INFO结构体的大小 
        </member>
        <member name="F:ESFramework.MowayCS.MW_STATUS_FLAG_DEFAULT">
            默认状态 
        </member>
        <member name="F:ESFramework.MowayCS.MW_STATUS_FLAG_PID">
            已经设置PID状态 
        </member>
        <member name="F:ESFramework.MowayCS.MW_STATUS_FLAG_PIN">
            已经修改PIN状态 
        </member>
        <member name="F:ESFramework.MowayCS.MW_CTRL_CODE_ITEM_RESET">
            复位设备，清除登陆状态。 
        </member>
        <member name="F:ESFramework.MowayCS.MW_CTRL_CODE_ITEM_LED">
            控制LED。  注：数据第一字节非0标识LED亮，0表示灭 
        </member>
        <member name="F:ESFramework.MowayCS.MW_PIN_TYPE_NONE">
            默认PIN类型 
        </member>
        <member name="F:ESFramework.MowayCS.MW_PIN_TYPE_USER">
            用户PIN类型 
        </member>
        <member name="F:ESFramework.MowayCS.MW_PIN_TYPE_DEVELOPER">
            开发商PIN类型 
        </member>
        <member name="F:ESFramework.MowayCS.MW_PIN_LENGTH_USER">
            用户PIN长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_PIN_LENGTH_DEVELOPER">
            开发商PIN长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_RSA_MODE_NORMAL">
            RSA不填充加密模式 
        </member>
        <member name="F:ESFramework.MowayCS.MW_RSA_MODE_PKCS1_V1_5">
            RSA PKCS1 V1_5 填充加密模式 
        </member>
        <member name="F:ESFramework.MowayCS.MW_RSA_1024_BYTE_SIZE">
            RSA-1024加密数据长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_RSA_2048_BYTE_SIZE">
            RSA-2048加密数据长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_HASH_ALGO_MD5">
            签名MD5 hash算法 
        </member>
        <member name="F:ESFramework.MowayCS.MW_HASH_ALGO_SHA1">
            签名SHA1 hash算法 
        </member>
        <member name="F:ESFramework.MowayCS.MW_HASH_ALGO_SHA256">
            签名SHA256 hash算法 
        </member>
        <member name="F:ESFramework.MowayCS.MW_HASH_ALGO_NONE">
            签名时不做Hash运算，由调用函数者自己做Hash运算 
        </member>
        <member name="F:ESFramework.MowayCS.MW_UPDATE_FILE_COUNT_MAX">
            一个升级包最大包含升级文件个数 
        </member>
        <member name="F:ESFramework.MowayCS.MW_UPDATE_MOD_FLAG_DELETE">
            升级文件时的操作标志 删除文件 
        </member>
        <member name="F:ESFramework.MowayCS.MW_UPDATE_MOD_FLAG_WRITE">
            升级文件时的操作标志 写文件 
        </member>
        <member name="F:ESFramework.MowayCS.MW_UPDATE_MOD_FLAG_CREATE">
            升级文件时的操作标志 创建文件 
        </member>
        <member name="F:ESFramework.MowayCS.MW_LANGUAGE_ID_EN">
            英文 
        </member>
        <member name="F:ESFramework.MowayCS.MW_LANGUAGE_ID_CH">
            中文 
        </member>
        <member name="F:ESFramework.MowayCS.MW_PATH_LEN">
            最大路径 
        </member>
        <member name="F:ESFramework.MowayCS.MW_SYM_ALG_IV_LENGTH">
            对称加密算法向量长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_SN_LENGTH">
            设备唯一序列号长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_FILE_NAME_LENGTH_MAX">
            文件名最大长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_HMAC_MD5_DIGEST_LENGTH">
            HMAC MD5计算结果长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_HMAC_SHA1_DIGEST_LENGTH">
            HMAC SHA1计算结果长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_HMAC_SHA256_DIGEST_LENGTH">
            HMAC SHA256计算结果长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_INPUT_DATA_LENGTH_MAX">
            一次最大转输数据长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_SEED_LENGTH_MAX">
            最大种子码长度 
        </member>
        <member name="F:ESFramework.MowayCS.MW_SEED_LENGTH_MIN">
            最小种子码长度 
        </member>
        <member name="T:ESFramework.MW_DEVICE_INFO_CTX">
            设备信息结构体 
        </member>
        <member name="F:ESFramework.MW_DEVICE_INFO_CTX.uiPID">
            产品ID 
        </member>
        <member name="F:ESFramework.MW_DEVICE_INFO_CTX.ucSerialNum">
            唯一序列号 
        </member>
        <member name="F:ESFramework.MW_DEVICE_INFO_CTX.ucDevPath">
            设备的路径 
        </member>
        <member name="F:ESFramework.MW_DEVICE_INFO_CTX.uiProtocol">
            通讯协议 
        </member>
        <member name="F:ESFramework.MW_DEVICE_INFO_CTX.uiLocationID">
            Mac OS 系统 LocationID 
        </member>
        <member name="T:ESFramework.MW_FILE_PROPERTY">
            文件属性结构体 
        </member>
        <member name="F:ESFramework.MW_FILE_PROPERTY.ucType">
            文件类型：二进制文件或者密钥文件。 
        </member>
        <member name="F:ESFramework.MW_FILE_PROPERTY.usPrivilege">
            文件权限 
        </member>
        <member name="F:ESFramework.MW_FILE_PROPERTY.uiSize">
            文件大小 
        </member>
        <member name="F:ESFramework.MW_FILE_PROPERTY.uiTime">
            创建时间 
        </member>
        <member name="F:ESFramework.MW_FILE_PROPERTY.acName">
            文件名称 
        </member>
        <member name="T:ESFramework.MW_DEVICE_STATUS">
            系统工作状态结构体 
        </member>
        <member name="F:ESFramework.MW_DEVICE_STATUS.uiSysTime">
            系统时间 
        </member>
        <member name="F:ESFramework.MW_DEVICE_STATUS.uiSysStatus">
            系统状态 
        </member>
        <member name="F:ESFramework.MW_DEVICE_STATUS.usReserved">
            保留 
        </member>
        <member name="F:ESFramework.MW_DEVICE_STATUS.ucLoginStatus">
            登录状态 
        </member>
        <member name="F:ESFramework.MW_DEVICE_STATUS.ucLedStatus">
            灯的状态 
        </member>
        <member name="T:ESFramework.MW_UPDADE_FILE_CTX">
            远程升级结构体 
        </member>
        <member name="F:ESFramework.MW_UPDADE_FILE_CTX.stFileProperty">
            文件属性结构体 
        </member>
        <member name="F:ESFramework.MW_UPDADE_FILE_CTX.pData">
            升级文件的数据内容（拷贝数据时需要进行非托管内存拷贝处理） 
        </member>
        <member name="F:ESFramework.MW_UPDADE_FILE_CTX.uiDateSize">
            升级文件的数据大小 
        </member>
        <member name="T:ESFramework.MW_DEVICE_ALL_ITEM_INFO">
            设备信息子项结构体 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.PID">
            产品号 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.SN">
            唯一序列号 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.produce_date">
            生产时间 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.all_capacity">
            总容量 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.free_capacity">
            可用容量 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.version">
            版本号 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.update_code">
            升级码 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.status">
            状态 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.update_ctrl_code">
            升级控制码 
        </member>
        <member name="F:ESFramework.MW_DEVICE_ALL_ITEM_INFO.reserved">
            保留 
        </member>
        <member name="T:ESFramework.IProgressObserver">
            <summary>
            用于侦听任务进度的观察者接口。
            </summary>
        </member>
        <member name="T:ESFramework.IProgressObserverable">
            <summary>
            可被侦听任务进度的被观察者接口。
            </summary>
        </member>
        <member name="T:ESFramework.ProgressObserverable">
            <summary>
            将IProgressObserver实现转接到IProgressObserverable接口。
            </summary>
        </member>
        <member name="T:ESFramework.DevicePair">
            <summary>
            设备对。（用于指定两个不同的设备类型，用于实现功能：对于同一账号，是否允许在指定的两个设备上同时登录？）
            </summary>
        </member>
        <member name="M:ESFramework.DevicePair.IsCompatible(System.Collections.Generic.List{ESFramework.DevicePair},ESFramework.ClientType,ESFramework.ClientType)">
            <summary>
            对于同一账号，是否允许在指定的两个设备上同时登录？如果不允许，后面登录的设备会把前面的挤掉线。
            </summary>
            <param name="type1">设备1的类型</param>
            <param name="type2">设备2的类型</param>
            <returns>是否允许</returns>
        </member>
        <member name="T:ESFramework.AgileIPE">
            <summary>
            可xml配置的IPEndPoint。
            </summary>
        </member>
        <member name="T:ESFramework.VersionType">
            <summary>
            版本类型。
            </summary>
        </member>
        <member name="F:ESFramework.VersionType.Free">
            <summary>
            免费版
            </summary>
        </member>
        <member name="F:ESFramework.VersionType.Professional">
            <summary>
            专业版
            </summary>
        </member>
        <member name="F:ESFramework.VersionType.Extended">
            <summary>
            扩展版
            </summary>
        </member>
        <member name="F:ESFramework.VersionType.Enterprise">
            <summary>
            企业版
            </summary>
        </member>
        <member name="T:ESFramework.ActionTypeOnChannelIsBusy">
            <summary>
            当通道繁忙时，发送数据所采取的操作。
            </summary>
        </member>
        <member name="F:ESFramework.ActionTypeOnChannelIsBusy.Continue">
            <summary>
            继续发送（排队）。
            </summary>
        </member>
        <member name="F:ESFramework.ActionTypeOnChannelIsBusy.Discard">
            <summary>
            丢弃消息
            </summary>
        </member>
        <member name="T:ESFramework.ClientType">
            <summary>
            客户端设备的类型。
            </summary>
        </member>
        <member name="F:ESFramework.ClientType.ServerSide">
            <summary>
            非客户端，而是服务端。
            </summary>
        </member>
        <member name="T:ESFramework.AgileTcpClient">
            <summary>
            可xml配置的TcpClient。支持IPV6。
            </summary>
        </member>
        <member name="P:ESFramework.AgileTcpClient.Port">
            <summary>
            Port 通信采用的本地端口，其值可能在GetNetworkStream方法中被修改。
            </summary>
        </member>
        <member name="P:ESFramework.AgileTcpClient.LocalIPAddress">
            <summary>
            LocalIPAddress 从哪个IP发出TCP连接。如果不设置，则选用第一块网卡的地址(此时，其值在GetNetworkStream方法中被修改)
            </summary>
        </member>
        <member name="P:ESFramework.AgileTcpClient.SocketSendBuffSize">
            <summary>
            SocketSendBuffSize 网卡发送缓冲区大小。
            </summary>
        </member>
        <member name="P:ESFramework.AgileTcpClient.SocketReceiveBuffSize">
            <summary>
            SockeetReceiveBuffSize 网卡接收缓冲区大小。
            </summary>
        </member>
        <member name="M:ESFramework.AgileTcpClient.FillKeepAliveStruct(System.Int32,System.Int32,System.Int32)">
            <summary>
            FillKeepAliveStruct 得到Keep-Alive结构值
            </summary>
            <param name="onOff">是否启用Keep-Alive</param>
            <param name="keepAliveTimeInMSec">多长时间后开始第一次探测ms</param>
            <param name="keepAliveIntervalInMSec">探测时间间隔ms</param>
            <returns></returns>
        </member>
        <member name="T:ESFramework.TcpClientWithTimeout">
            <summary>
            TcpClientWithTimeout 用来设置一个带连接超时功能的类
            使用者可以设置毫秒级的等待超时时间 (1000=1second)
            例如:
            TcpClient connection = new TcpClientWithTimeout('127.0.0.1',80,1000).Connect();
            </summary>
        </member>
        <member name="T:ESFramework.AsynOrderedExecutor`1">
            <summary>
            异步顺序执行器。使用Enqueue的调用线程来处理对象，保证处理的顺序为加入的顺序。
            </summary>    
        </member>
        <member name="M:ESFramework.AsynOrderedExecutor`1.WaitOnFull">
            <summary>
            当队列中的消息数达到最大时，则一直阻塞。
            </summary>
        </member>
        <member name="M:ESFramework.AsynOrderedExecutor`1.Enqueue(`0)">
            <summary>
            将消息放入到队列中，等待处理。
            </summary>       
        </member>
        <member name="T:ESFramework.NetworkHelper">
            <summary>
            网络基础功能帮助类。
            </summary>
        </member>
        <member name="M:ESFramework.NetworkHelper.GetIPList">
            <summary>
            获取本地的IP地址列表。根据EnableIPv6属性决定返回的IP列表中是否包含IPv6地址。
            </summary>        
        </member>
        <member name="M:ESFramework.NetworkHelper.GetIPList(System.Net.Sockets.AddressFamily)">
            <summary>
            获取本地的IP地址列表。参数指定IPV4或IPV6
            </summary>        
        </member>
        <member name="M:ESFramework.NetworkHelper.GetFirstIP">
            <summary>
            获取本地IP列表中的第一个IP地址。
            </summary>        
        </member>
        <member name="M:ESFramework.NetworkHelper.ReceiveData(System.IO.Stream,System.Int32)">
            <summary>
            ReceiveData 从网络读取指定长度的数据。当读取的字节数为0时，表示连接断开，并抛出IOException异常。
            </summary>	
        </member>
        <member name="M:ESFramework.NetworkHelper.ReceiveData(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
            <summary>
            ReceiveData 从网络读取指定长度的数据 ，存放在buff中offset处。当读取的字节数为0时，表示连接断开，并抛出IOException异常。
            </summary>	
        </member>
        <member name="M:ESFramework.NetworkHelper.GetMinMTU">
            <summary>
            获取本机所有网卡的最小的MTU。
            </summary>       
        </member>
        <member name="M:ESFramework.NetworkHelper.IsIPAddress(System.String)">
            <summary>
            文本是否为IP地址。
            </summary>        
        </member>
        <member name="T:ESFramework.PortListenerState">
            <summary>
            端口监听器的状态
            </summary>
        </member>
        <member name="P:ESFramework.PortListenerState.LastDetectTime">
            <summary>
            最后一次检测新TCP连接的时间。
            </summary>
        </member>
        <member name="P:ESFramework.PortListenerState.IsListening">
            <summary>
            是否正在监听端口？
            </summary>
        </member>
        <member name="P:ESFramework.PortListenerState.IsAuthorized">
            <summary>
            是否授权？
            </summary>
        </member>
        <member name="P:ESFramework.PortListenerState.IsMaxConnection">
            <summary>
            已经到达最大连接数？
            </summary>
        </member>
        <member name="P:ESFramework.PortListenerState.ListenThreadRunning">
            <summary>
            监听线程是否运行中？
            </summary>
        </member>
        <member name="T:ESFramework.ServerConfiguration">
            <summary>
            服务器的基础配置信息。
            </summary>
        </member>
        <member name="T:ESFramework.Core.IResponseManager">
            <summary>
            用于管理接收到的待提取的回复消息。
            </summary>
        </member>
        <member name="M:ESFramework.Core.IResponseManager.PushResponse(ESFramework.Core.IMessage)">
            <summary>
            将需要被提取的消息压入到管理器中，等待调用线程的提取。
            </summary>        
        </member>
        <member name="M:ESFramework.Core.IResponseManager.RegisterCallback(System.Int32,System.Int32,ESFramework.Core.ResponseHandler,System.Object)">
            <summary>
            注册回复对应的回调函数。
            </summary>
            <param name="resMessageType">回复的消息类型</param>
            <param name="messageID">回复消息的ID</param>
            <param name="handler">回复处理器</param>
            <param name="state">状态数据</param>
        </member>
        <member name="M:ESFramework.Core.IResponseManager.PickupResponse(System.Int32,System.Int32)">
            <summary>
            在TimeoutSec时间内不断的PopRespose，直到找到符合条件的消息，或者抛出超时异常。
            </summary>        
        </member>
        <member name="P:ESFramework.Core.IResponseManager.ResponseTTL">
            <summary>
            如果一个回复在管理器中存在的时间超过ResponseTTL，则会被删除。单位为s。
            如果ResponseTTL为0，则表示不进行生存期管理
            </summary>		
        </member>
        <member name="P:ESFramework.Core.IResponseManager.TimeoutSec">
            <summary>
            如果在TimeoutSec内，PickupResponse仍然接收不到期望的回复，则抛出异常。为0时，表示不设置超时
            </summary>
        </member>
        <member name="T:ESFramework.Core.ResponseHandler">
            <summary>
            用于处理回复消息的方法委托。
            </summary>
            <param name="ee">如果为TimeoutException，表示超时没有回复。只有为null时，response参数才有效。</param>
            <param name="response">回复消息</param>
            <param name="state">状态数据</param>
        </member>
        <member name="T:ESFramework.Core.ResponseManager">
            <summary>
            IResponseManager的参考实现。
            </summary>
        </member>
        <member name="M:ESFramework.Core.ResponseManager.#ctor(System.Int32,System.Int32)">
            <summary>
            构造函数。
            </summary>
            <param name="responseTTL_Secs">如果一个回复在管理器中存在的时间超过ResponseTTL，则会被删除。单位为秒。如果ResponseTTL为0，则表示不进行生存期管理。</param>
            <param name="timeout_Sec">如果在TimeoutSec内，PickupResponse仍然接收不到期望的回复，则将抛出异常。单位为秒。为0时，表示不设置超时。一般设为30。</param>
        </member>
        <member name="M:ESFramework.Core.ResponseManager.Dispose">
            <summary>
            释放超时检测线程。
            </summary>
        </member>
        <member name="T:ESFramework.Core.ContractFormatStyle">
            <summary>
            协议的格式。
            </summary>
        </member>
        <member name="F:ESFramework.Core.ContractFormatStyle.Stream">
            <summary>
            流协议或称二进制协议。
            </summary>
        </member>
        <member name="F:ESFramework.Core.ContractFormatStyle.Text">
            <summary>
            文本协议，如基于xml的。
            </summary>
        </member>
        <member name="T:ESFramework.Core.IContractHelper">
            <summary>
            与消息协议相关的决策。
            2005.10.07
            </summary>
        </member>
        <member name="T:ESFramework.Core.NullBodyContract">
            <summary>
            NullBodyContract IContractHelper.CreateMessage方法泛型参数的占位符，表示没有消息体。
            </summary>
        </member>
        <member name="T:ESFramework.Core.IMessage">
            <summary>
            在网络上传递的消息的基础接口。 注意，不要将一个消息分为多段发送，在多线程环境中，会导致片段交叉。   
            </summary>	
        </member>
        <member name="P:ESFramework.Core.IMessage.SourceAddress">
            <summary>
            消息的源地址。任何一个NetEngine都会保证，在接收完一条消息的时候，会为该字段正确地赋值。
            如果是服务器接收到来自客户端的消息，则该字段表示用户的地址；
            如果是客户端接收到来自服务器的消息，则该字段表示服务器的地址。
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessage.Header">
            <summary>
            消息头。
            </summary>
        </member>
        <member name="M:ESFramework.Core.IMessage.GetMessageLength">
            <summary>
            获取整个消息的长度。如果为文本消息，则为整个文本的长度；如果为流消息，则为消息转化为流之后流的长度。
            </summary>       
        </member>
        <member name="M:ESFramework.Core.IMessage.ToStream">
            <summary>
            将消息转化为字节流，以备发送或持久化。
            </summary>        
        </member>
        <member name="T:ESFramework.Core.IMessageHeader">
            <summary>
            消息头接口，规定了消息头中至少包含的信息：发送者、接收者、消息类型、消息ID。
            zhuweisky 2005.12.07 
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessageHeader.SourceID">
            <summary>
            发出本消息的用户编号。服务端接收到的消息中，为LoginID；客户端接收到的消息中，为UserID。（即服务端转发消息给客户端时，会将该ID由Login改写为UserID后再转发）
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessageHeader.DestUserID">
            <summary>
            接收消息的目标用户编号，不是LoginID。（注：只有FileMessageTypeRoom.FilePackageData消息时，DestUserID才是LoginID）
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessageHeader.MessageType">
            <summary>
            消息的类型。
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessageHeader.MessageID">
            <summary>
            每个消息实例的唯一标志（也可用于将功能请求与其回复一一对应起来）
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessageHeader.ClientType">
            <summary>
            发出本消息的用户设备类型。
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessageHeader.SourceUserID">
            <summary>
            发出本消息的UserID，只读，由SourceID转换而来。
            </summary>
        </member>
        <member name="T:ESFramework.Core.IStringEncoder">
            <summary>
            字符串编解码器接口。
            </summary>
        </member>
        <member name="M:ESFramework.Core.IStringEncoder.GetStrFromStream(System.Byte[],System.Int32,System.Int32)">
            <summary>
            将字节流解码为字符串。
            </summary>     
        </member>
        <member name="M:ESFramework.Core.IStringEncoder.GetBytesFromStr(System.String)">
            <summary>
            对字符串进行编码返回字节数组。
            </summary>       
        </member>
        <member name="T:ESFramework.Core.DefaultStringEncoder">
            <summary>
            ESFramework内置提供的默认的字符串编解码器，采用UTF-8对字符串进行编解码。Singleton模式。
            </summary>
        </member>
        <member name="T:ESFramework.Core.IMessageDispatcher">
            <summary>
            消息分派器，核心的消息组件，通过MessagePipe聚合了MessageFilter、MessageSpy。
            </summary>
        </member>
        <member name="M:ESFramework.Core.IMessageDispatcher.DispatchMessage(ESFramework.Core.IMessage)">
            <summary>
            分派并处理消息。该方法不允许抛出异常！内部异常信息可记录到日志！
            </summary>		
        </member>
        <member name="T:ESFramework.Core.INakeDispatcher">
            <summary>
            内层分派器，消息到达INakeDispatcher内部，就不再与Spy或Hook相关。
            zhuweisky 2006.05.25
            </summary>
        </member>
        <member name="M:ESFramework.Core.INakeDispatcher.DispatchMessage(ESFramework.Core.IMessage)">
            <summary>
            在最内部分配消息给最终的消息处理器去处理，并返回处理的结果。
            </summary>     
        </member>
        <member name="T:ESFramework.Core.MessageDispatcher">
            <summary>
            IMessageDispatcher接口的默认实现。
            </summary>
        </member>
        <member name="T:ESFramework.Core.NakeDispatcher">
            <summary>
            INakeDispatcher接口的默认实现。
            </summary>
        </member>
        <member name="T:ESFramework.Core.INetworkEngine">
            <summary>
            所有网络引擎（包括服务端引擎、客户端引擎、TCP引擎、UDP引擎、二进制引擎、文本引擎）的基础接口。    
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.ProtocolType">
            <summary>            
            传输层协议类型，TCP或UDP
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.ContractFormatStyle">
            <summary>
            引擎所采用的协议类型（二进制、文本）。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.CreateTime">
            <summary>
            引擎实例的创建时间。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.Port">
            <summary>
            表示要监听本地的哪个端口。如果设定其值小于等于0，则表示由系统自动分配。      
            注意，引擎初始化完成后，不能再修改该属性。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.IPAddress">
            <summary>
            对于服务端引擎，表示要绑定本地的哪个IP，如果设为null，则表示绑定本地所有IP。
            对于客户端引擎，表示要绑定本地的哪个IP与服务器进行通信。如果设为null（其值会在初始化完成后被修改，断线重连后也可能改变），则自动选择地址列表中的某一个。
            注意，引擎初始化完成后，不能再修改该属性。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.EsfLogger">
            <summary>
            ESFramework 规定的标准的日志记录器。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.SocketSendBuffSize">
            <summary>
            Socket(网卡)发送缓冲区的大小。默认为64K。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.SocketReceiveBuffSize">
            <summary>
            Socket(网卡)接收缓冲区的大小。默认为64K。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.MaxMessageSize">
            <summary>
            网络引擎能够接收的最大的消息尺寸。据此网络引擎可以为每个Session/Connection开辟适当大小的接收缓冲区。
            默认为1k。当接收到的消息尺寸超过MaxMessageSize时，将会关闭对应的连接（对TCP）或丢弃数据（对UDP）。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.MessageDispatcher">
            <summary>
            消息分派器。网络引擎将调用它来分派接收到的消息。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.ContractHelper">
            <summary>
            依据ContractFormatStyle属性，注入相应的ContractHelper。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.Disposed">
            <summary>
            引擎实例是否已经被释放。
            </summary>
        </member>
        <member name="P:ESFramework.Core.INetworkEngine.UncompletedSendingCount4Busy">
            <summary>
            当通道上尚未发送完成的消息个数大于该值时，判定通道为繁忙（配合发送方法的ActionTypeOnChannelIsBusy参数使用）？默认值为：0。（小于0，表示始终判定为不繁忙）
            </summary>
        </member>
        <member name="M:ESFramework.Core.INetworkEngine.Initialize">
            <summary>
            初始化并启动网络引擎。如果修改了引擎配置参数，在应用新参数之前必须先重新调用该方法初始化引擎。
            </summary>
        </member>
        <member name="M:ESFramework.Core.INetworkEngine.DisposeAsyn">
            <summary>
            当不再使用当前引擎实例时，释放它。（异步方式）
            注意：对于UDP或客户端引擎，如果消息是同步处理的，请不要在消息处理器中调用Dispose方法，否则，会导致死锁。因为停止引擎要等到最后一条消息处理完毕才会返回。
            可以转向调用异步的DisposeAsyn方法。
            </summary>
        </member>
        <member name="E:ESFramework.Core.INetworkEngine.EngineDisposed">
            <summary>
            当引擎实例被释放时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Core.INetworkEngine.MessageReceived">
            <summary>
            接收到一个完整的消息时触发该事件。
            </summary>
        </member>
        <member name="E:ESFramework.Core.INetworkEngine.MessageSent">
            <summary>
            将消息成功发送之后触发该事件
            </summary>
        </member>
        <member name="E:ESFramework.Core.INetworkEngine.InvalidMessageReceived">
            <summary>
            当接收到不完整或无法解析的数据时触发该事件
            </summary>
        </member>
        <member name="T:ESFramework.Core.ProtocolType">
            <summary>
            传输层协议类型。
            </summary>
        </member>
        <member name="T:ESFramework.Core.MessageInvalidType">
            <summary>
            接收到的无效的消息分类。
            </summary>
        </member>
        <member name="F:ESFramework.Core.MessageInvalidType.Valid">
            <summary>
            正常消息。
            </summary>
        </member>
        <member name="F:ESFramework.Core.MessageInvalidType.MessageSizeOverflow">
            <summary>
            消息尺寸溢出。
            </summary>
        </member>
        <member name="F:ESFramework.Core.MessageInvalidType.InvalidHeader">
            <summary>
            无效的消息头
            </summary>
        </member>
        <member name="F:ESFramework.Core.MessageInvalidType.InvalidToken">
            <summary>
            无效的标识符
            </summary>
        </member>
        <member name="F:ESFramework.Core.MessageInvalidType.DataLacked">
            <summary>
            数据包长度不够
            </summary>
        </member>
        <member name="F:ESFramework.Core.MessageInvalidType.InvalidClientType">
            <summary>
            无效的客户端类型
            </summary>
        </member>
        <member name="T:ESFramework.Core.IMessagePipe">
            <summary>
            消息管道，由Filter和Spy组合而成，将多个MessageFilter和MessageSpy组合成一个有序的管道。
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessagePipe.GatewayMessageSpy">
            <summary>
            工作于网关层，网络组件收到的消息需要经过的第一个组件就是GatewayMessageSpy，
            发送的消息在到达网络组件前经过的最后一个组件也是GatewayMessageSpy
            </summary>
        </member>
        <member name="P:ESFramework.Core.IMessagePipe.InnerMessageSpy">
            <summary>
            接收的消息到达处理器之前经过的最后一个组件就是InnerMessageSpy，
            处理器返回的结果消息经过的第一个组件也是InnerMessageSpy
            </summary>
        </member>
        <member name="M:ESFramework.Core.IMessagePipe.PipeOutMessage(ESFramework.Core.IMessage)">
            <summary>
            消息在发送之前经过管道处理。
            </summary>        
        </member>
        <member name="M:ESFramework.Core.IMessagePipe.PipeInMessage(ESFramework.Core.IMessage)">
            <summary>
            接收到的消息在被NakeDispatcher分派之前经过管道处理。
            </summary>
        </member>
        <member name="E:ESFramework.Core.IMessagePipe.MessageForbidden">
            <summary>
            当消息在Pipe中传递被Pipe丢弃时，触发此事件。
            </summary>
        </member>
        <member name="T:ESFramework.Core.EmptyMessagePipe">
            <summary>
            对消息不做任何处理/监控的消息管道。NullObject模式。
            </summary>
        </member>
        <member name="T:ESFramework.Core.MessagePipe">
            <summary>
            IMessagePipe接口的默认实现。
            </summary>
        </member>
        <member name="T:ESFramework.Core.IMessageProcesser">
            <summary>
            消息处理器基础接口。
            2005.07.12
            </summary>
        </member>
        <member name="M:ESFramework.Core.IMessageProcesser.CanProcess(System.Int32)">
            <summary>
            该消息处理器是否能够处理类型为messageType的消息。
            </summary>        
        </member>
        <member name="M:ESFramework.Core.IMessageProcesser.ProcessMessage(ESFramework.Core.IMessage)">
            <summary>
            处理消息并返回回复消息，如果返回null，表示没有回复消息。
            </summary>       
        </member>
        <member name="T:ESFramework.Core.IProcesserFactory">
            <summary>
            请求处理器工厂，根据请求的类型创建对应的处理器 。
            2005.07.12
            </summary>
        </member>
        <member name="M:ESFramework.Core.IProcesserFactory.CreateProcesser(System.Int32)">
            <summary>
            根据消息的类型创建对应的处理器 。
            </summary>
            <param name="messageType">消息的类型</param>       
        </member>
        <member name="T:ESFramework.Core.ProcesserFactory">
            <summary>
            IProcesserFactory接口的默认实现，用于挂接多个消息处理器，然后根据要处理的消息类型返回正确的处理器。
            </summary>
        </member>
        <member name="T:ESFramework.Core.ContainerStyleMessageSpy">
            <summary>
            用于将多个InnerMessageSpy实例包装成一个整体，且也实现了IInnerMessageSpy接口。ContainerStyle模式。
            </summary>
        </member>
        <member name="T:ESFramework.Core.IMessageSpy">
            <summary>
            用于监控所有的请求/回复消息(例如，可以记录最新接收到的N条消息)。
            (1)IMessageSpy与IMessageFilter的区别在于，IMessageSpy不修改消息，而IMessageFilter可能修改消息（如加密/解密）
            (2)IMessageSpy的SpyMessageReceived/SpyMessageToBeSent方法可以丢弃收到的某些消息
            zhuweisky 2006.05.17
            </summary>
        </member>
        <member name="M:ESFramework.Core.IMessageSpy.SpyMessageReceived(ESFramework.Core.IMessage)">
            <summary>
            监控所有收到的消息，如请求消息，返回false表明丢弃消息。
            </summary>       
        </member>
        <member name="M:ESFramework.Core.IMessageSpy.SpyMessageToBeSent(ESFramework.Core.IMessage)">
            <summary>
            监控所有即将发送的消息，如回复消息，返回false表明丢弃消息。
            </summary>       
        </member>
        <member name="T:ESFramework.Core.EmptyMessageSpy">
            <summary>
            不对消息做任何监控的MessageSpy。NullObject模式。
            </summary>
        </member>
        <member name="T:ESFramework.Core.BaseMessageTransformer">
            <summary>
            消息变换器的基类。使得可以配置要捕获哪些类型消息或不捕获哪些类型的消息。
            </summary>
        </member>
        <member name="T:ESFramework.Core.BaseMessageTransformer.MessageCapturedStyle">
            <summary>
            消息捕获的模式。
            </summary>
        </member>
        <member name="F:ESFramework.Core.BaseMessageTransformer.MessageCapturedStyle.Default">
            <summary>
            默认截获所有消息。
            </summary>
        </member>
        <member name="F:ESFramework.Core.BaseMessageTransformer.MessageCapturedStyle.CapturedList">
            <summary>
            配置的列表为捕获列表，只捕获列表中列出的消息类型。
            </summary>
        </member>
        <member name="F:ESFramework.Core.BaseMessageTransformer.MessageCapturedStyle.NotCapturedList">
            <summary>
            配置的列表为不捕获列表，只捕获列表中没有列出的消息类型。
            </summary>
        </member>
        <member name="T:ESFramework.Core.ContainerStyleTransformer">
            <summary>
            封装多个IMessageTransformer实例，将多个Transformer当作一个整体，并且此整体也实现了IMessageTransformer接口。ContainerStyle模式。
            </summary>	
        </member>
        <member name="T:ESFramework.Core.IMessageTransformer">
            <summary>
            消息变换器。用于对请求消息和回复消息进行截获,然后处理转换这些消息，比如加密/解密、记录、追踪等。
            将接收到的消息交给CaptureReceivedMessage处理，将要发送的消息交给CaptureBeforeSendMessage处理即可。
            zhuweisky 2005.12.28
            </summary>
        </member>
        <member name="M:ESFramework.Core.IMessageTransformer.CaptureBeforeSendMessage(ESFramework.Core.IMessage)">
            <summary>
            截获即将发出去的消息，可以对截获到的消息进行转换，比如加密、压缩等。
            </summary>
            <param name="msg">即将发送的消息</param>
            <returns>经过截获转换得到的结果</returns>
        </member>
        <member name="M:ESFramework.Core.IMessageTransformer.CaptureReceivedMessage(ESFramework.Core.IMessage)">
            <summary>
            截获收到的消息，可以对截获到的消息进行转换，比如解密、解压缩等。
            </summary>      
            <param name="msg">从网络接收到的消息</param>
            <returns>经过截获转换得到的结果</returns>
        </member>
        <member name="T:ESFramework.Core.EmptyMessageTransformer">
            <summary>
            不对消息做任何处理的MessageTransformer。NullObject模式。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.ContractStyle.Stream.BaseSerializeContract">
            <summary>
            如果流协议Body采用.NET二进制序列化的方式与网络流相互转换，则Body的Contract可使用此作为基类。
            具体的协议主体类，只需要添加协议成员即可。
            在大多数情况下，可以被ESBasic.Serialization.CompactPropertySerializer取代。
            注意：使用.NET二进制序列化会对加密的Contract的dll有限制，各个通信端必须使用同一个加密的dll，否则将可能导致反序列化失败。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.ContractStyle.Stream.BaseSerializeContract.ParseBodyContract``1(ESFramework.Engine.ContractStyle.Stream.StreamMessage)">
            <summary>
            将NetMessage的Body部分使用二进制反序列化为IContract对象
            注意：目标Contract必须是通过二进制反序列化实现的ToStream方法
            </summary>		
        </member>
        <member name="T:ESFramework.Engine.ContractStyle.Stream.IStreamContractHelper">
            <summary>
            与二进制协议相关的决策。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Stream.IStreamContractHelper.MessageStartToken">
            <summary>
            消息头中的起始标志，用于验证IMessageHeader.StartToken是否正确。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Stream.IStreamContractHelper.MessageHeaderLength">
            <summary>
            消息头的长度
            </summary>
        </member>
        <member name="M:ESFramework.Engine.ContractStyle.Stream.IStreamContractHelper.ParseMessageHeader(System.Byte[],System.Int32)">
            <summary>
            将字节流解析为消息头。如果消息头非法，则返回null。
            确保此方法不会抛出异常。
            </summary>        
        </member>
        <member name="T:ESFramework.Engine.ContractStyle.Stream.IStreamMessageHeader">
            <summary>
            采用二进制协议进行通信时的消息头接口。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Stream.IStreamMessageHeader.StartToken">
            <summary>
            消息的起始标志。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Stream.IStreamMessageHeader.HeaderLength">
            <summary>
            消息头的长度，对于二进制协议来说，消息头的长度是一个固定值。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Stream.IStreamMessageHeader.MessageBodyLength">
            <summary>
            本消息中消息体的长度。
            </summary>  
        </member>
        <member name="M:ESFramework.Engine.ContractStyle.Stream.IStreamMessageHeader.ToStream">
            <summary>
            将消息头转化为字节数组。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.ContractStyle.Stream.IStreamMessageHeader.ToStream(System.Byte[],System.Int32)">
            <summary>
            将消息头转化为字节数组并填充到buff中。
            </summary>
            <param name="buff">被填充的缓冲区</param>
            <param name="offset">从缓冲区的偏移位置开始填充</param>
        </member>
        <member name="T:ESFramework.Engine.ContractStyle.Stream.StreamMessage">
            <summary>
            基于二进制的消息。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Stream.StreamMessage.Body">
            <summary>
            如果不为null，则其DataBuffer.Length值必须与streamMessageHeader.MessageBodyLength相等。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.ContractStyle.Text.ITextContractHelper">
            <summary>
            用于基于文本消息的协议决策。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Text.ITextContractHelper.EndToken">
            <summary>
            消息的结束标识符（经过编码后得到的字节数组）。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.ContractStyle.Text.ITextContractHelper.ParseMessageHeader(System.String)">
            <summary>
            解析消息头。如果消息头非法，请返回null。
            确保此方法不会抛出异常。
            </summary>      
        </member>
        <member name="M:ESFramework.Engine.ContractStyle.Text.ITextContractHelper.IsRightFormatMessage(System.String)">
            <summary>
            验证消息的起始符和结束符是否正确。
            </summary>       
        </member>
        <member name="T:ESFramework.Engine.ContractStyle.Text.TextMessage">
            <summary>
            基于文本的消息。TextMessage.Content属性的值即是整个消息内容。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.ContractStyle.Text.TextMessage.Content">
            <summary>
            文本消息的所有内容
            </summary>
        </member>
        <member name="T:ESFramework.Engine.NetworkEngineFactory">
            <summary>
            网络引擎工厂。用于创建各种类型的网络引擎实例。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine">
            <summary>
            客户端TCP引擎。 封装了数据接收线程，完全向客户端隐藏了网络通信细节。
            Client所有的通过网络发送/接收数据都通过ITcpPassiveEngine进行。
            zhuweisky 2006.01.12
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.ConnectionInterrupted">
            <summary>
            当客户端与服务器的TCP连接断开时，将触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.ConnectionRebuildStart">
            <summary>
            自动重连开始时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.ConnectionRebuildSucceed">
            <summary>
            自动重连成功后，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.ConnectionRebuildFailure">
            <summary>
            自动重连超过最大重试次数时，表明重连失败，将触发此事件。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.Sock5ProxyInfo">
            <summary>
            Sock5代理服务器信息。如果不需要代理，则设置为null。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.Connected">
            <summary>
            当前是否处于连接状态。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.ConnectionVerified">
            <summary>
            连接已验证（如登录通过）？如果未连接，则直接返回false；每次连接断开后，也将设置为false。当通过验证后，请调用VerifyConnectionSucceed方法。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.AutoReconnect">
            <summary>
            当与服务器断开连接时，是否自动重连。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.WriteTimeoutInMSecs">
            <summary>
            给每个连接发送数据超时时间（默认为-1，无限）。如果在指定的时间内未将数据发送完（即数据还未提交到Socket缓冲区），则将记录异常到日志，并关闭对应的连接。
            该属性只对同步模式发送数据有效，异步发送数据则无法设定超时时间。
            最好给该属性赋一个有限值，因为在某些情况下，发送数据可能会导致无限阻塞。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.FirstCallbackOnConnectionRebuildSucceed">
            <summary>
            重连成功后，第一个调用的方法。在触发ConnectionRebuildSucceed事件之前。可以通过注入该属性，确保重连成功后发送的第一个消息的类型。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.CloseConnection(System.Boolean)">
            <summary>
            主动关闭与服务器的连接。如果AutoReconnect为true，将引发自动重连。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.Reconnect(System.Int32)">
            <summary>
            手动重连。如果当前处于连接状态，则直接返回。
            </summary>               
        </member>
        <member name="M:ESFramework.Engine.Tcp.Passive.ITcpPassiveEngine.VerifyConnectionSucceed">
            <summary>
            当连接通过验证（比如登录成功）后，调用该方法将连接设置为已验证状态。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine">
            <summary>
            客户端的Tcp引擎，通过ContractFormatStyle属性指定采用的协议类型。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine.MaxMessageSize">
            <summary>
            ReceiveBuffSize 应用程序开辟的接收缓冲区的大小。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine.ContractHelper">
            <summary>
            ContractHelper 依据ContractFormatStyle属性，注入相应的ContractHelper
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine.WriteTimeoutInMSecs">
            <summary>
            给每个连接发送数据超时时间（默认为-1，无限）。如果在指定的时间内未将数据发送完（即数据还未提交到Socket缓冲区），则将记录异常到日志，并关闭对应的连接。
            该属性只对同步模式发送数据有效，异步发送数据则无法设定超时时间。
            最好给该属性赋一个有限值，因为在某些情况下，发送数据可能会导致无限阻塞。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine.Sock5ProxyInfo">
            <summary>
            Sock5代理服务器信息
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine.IPAddress">
            <summary>
            绑定当前哪个IP地址。如果为null，则自动选择地址列表中的第一个。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine.FirstCallbackOnConnectionRebuildSucceed">
            <summary>
            重连成功后，第一个调用的方法。在触发ConnectionRebuildSucceed事件之前。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Passive.PassiveBaseTcpEngine.CloseConnection(System.Boolean)">
            <summary>
            主动关闭与服务器的连接。如果AutoReconnect为true，将引发自动重连。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Passive.Sock5ProxyInfo">
            <summary>
            Sock5代理服务器的信息。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.Sock5ProxyInfo.ProxyServerIP">
            <summary>
            代理服务器IP
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.Sock5ProxyInfo.ProxyServerPort">
            <summary>
            代理服务器端口
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.Sock5ProxyInfo.UserName">
            <summary>
            登陆代理服务器的用户名。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Passive.Sock5ProxyInfo.Password">
            <summary>
            登陆代理服务器的密码。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.BaseTcpEngine">
            <summary>
            tcp服务端引擎基础组件。  
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.MessageVerifier">
            <summary>
            如果不需要验证连接上收到的消息，则设为null即可。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.SocketSendBuffSize">
            <summary>
            SocketSendBuffSize 网卡发送缓冲区大小。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.SocketReceiveBuffSize">
            <summary>
            SockeetReceiveBuffSize 网卡接收缓冲区大小。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.WriteTimeoutInMSecs">
            <summary>
            给每个连接发送数据超时时间（默认为-1，无限）。如果在指定的时间内未将数据发送完，则将记录异常到日志，并关闭对应的连接。
            该属性只对同步模式发送数据有效，异步发送数据则无法设定超时时间。
            最好给该属性赋一个有限值，因为在某些情况下，发送数据可能会导致无限阻塞。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.AsynMessageQueueEnabled">
            <summary>
            是否开启异步消息队列。默认值为false。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.MaxChannelCacheSize">
            <summary>
            每个通道连接上允许最大的等待发送【包括投递】以及正在发送的消息个数。
            当等待发送以及正在发送的消息个数超过该值时，将关闭对应的连接。如果设置为0，则表示不作限制。默认值为0。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.AsynConnectionEvent">
            <summary>
            异步引发连接成功的事件。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.BaseTcpEngine.PostMessageToClient(System.Net.IPEndPoint,ESFramework.Core.IMessage,System.String,System.Int32,System.Boolean)">
            <summary>
            实现有依赖关系的可丢弃的消息发送。
            （1）如果等待发送的消息个数大于discardPostingCount时，则丢弃当前消息。
            （2）当前数据是否依赖上一次发送的数据。如果依赖，当上一次数据被丢弃时，则直接丢弃当前消息。
            token4RecordPosting - ( {sourceUserID#userID} - lastDiscarded)
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.BaseTcpEngine.DisposeUser(ESFramework.Engine.Tcp.Server.IContextKey,ESFramework.Server.DisconnectedType)">
            <summary>
            对于一个连接来说，可以保证SomeOneDisconnected事件只触发一次
            </summary>       
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.BaseTcpEngine.CloseOneConnection(System.Net.IPEndPoint,ESFramework.Server.DisconnectedType)">
            <summary>
            对于一个连接来说，只触发一次SomeOneDisconnected事件
            </summary>   
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseTcpEngine.UseIpeAsLoginID">
            <summary>
            是否使用客户端的IPE作为其LoginID。默认值为false。通常，当客户端发过来的消息头中不包含LoginID信息，将其设为true。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.BaseTcpEngine.HandleCrossServerMessage(ESFramework.Core.IMessage)">
            <summary>
            处理ACMS转发过来的跨服消息（消息的接收者是服务端）。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.BaseContextKey.MessageReceived">
            <summary>
            MessageReceived 用于验证是否为第一个消息。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseContextKey.NetStreamDisposed">
            <summary>
            NetStreamDisposed tcp连接是否已经被释放。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseContextKey.UserAddress">
            <summary>
            UserAddress 当前连接的客户的IP地址信息
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.BaseContextKey.LoginID">
            <summary>
            当前连接对应的UserID。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.ContextKeyManager">
            <summary>
            用于管理所有的ContextKey ,ContextKeyManager中的所有成员方法都是线程安全的。
            zhuweisky 
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ContextKeyManager.ExpiredSpanInSecs">
            <summary>
            ExpiredSpanInSecs 某个连接建立后，如果在ExpiredSpanInSecs时间内收不到来自客户端的任何数据，则将触发ContextExpired事件（只是给出通知，并不释放Context）。
            如果ExpiredSpanInSecs小于等于0，则不做过期检查。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.IContextKey">
            <summary>
            用于封装一个TCP连接的相关信息。一个IContextKey实例与一个Tcp连接对应。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.IContextKey.LoginID">
            <summary>
            当前连接对应的LoginID。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.ConnectionBoundState">
            <summary>
            连接与用户帐号的绑定状态
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Tcp.Server.ConnectionBoundState.NotBound">
            <summary>
            连接建立时的状态，还未与LoginID绑定。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Tcp.Server.ConnectionBoundState.Bound">
            <summary>
            连接已与用户ID绑定
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Tcp.Server.ConnectionBoundState.Invalid">
            <summary>
            连接已经失效，即将被释放。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.StreamContextKey">
            <summary>
            针对二进制协议，用于封装一个TCP连接的相关信息。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.StreamContextKey.HeaderBuffer">
            <summary>
            Buffer 用于接收消息头的缓冲区。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.TextContextKey">
            <summary>
            针对文本协议，用于封装一个TCP连接的相关信息。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.TextContextKey.Buffer">
            <summary>
            Buffer 当前连接所使用的的接收缓冲区。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.TextContextKey.OffsetForReceive">
            <summary>
            OffsetForReceive 从当前连接所使用的接收缓冲区的哪个偏移位置开始继续接收新来的字节。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.TextContextKey.MaxSizeForReceive">
            <summary>
            MaxSizeForReceive 当前连接所使用的接收缓冲区最多还可以接纳多少字节的数据。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.TextContextKey.JustReadBytes(System.Int32)">
            <summary>
            JustReadBytes 当一次数据接收完毕时，通知ContextKey本次接收了多少字节。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.TextContextKey.GetNextRoundedMessage2">
            <summary>
            从当前缓冲区中提取一条完整的消息。
            </summary>      
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.TextContextKey.IsBufferFull">
            <summary>
            IsBufferFull 当前连接所使用的的接收缓冲区是否已经没有空位接收新的数据了。（这通常在接收缓冲区的尺寸比最大消息的尺寸要小所导致）
            </summary>
            <returns></returns>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.TextContextKey.Reset">
            <summary>
            Reset 将接收新数据的偏移重置到接收缓冲区的起始处。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.TextContextKeyParameters.EndToken">
            <summary>
            消息结束标志经过编码后得到的字节数组，
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.IMessageVerifier">
            <summary>
            消息验证器，用于验证每个TCP连接上接收到消息。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.IMessageVerifier.VerifyMessage(System.Net.IPEndPoint,ESFramework.Engine.Tcp.Server.ConnectionBoundState,ESFramework.Core.IMessage)">
            <summary>
            验证每个TCP连接上接收到消息。如果通不过验证，服务端TCP引擎将会关闭对应的连接。
            </summary>
            <param name="message">将被验证的消息</param>
            <param name="address">TCP连接的客户端地址</param>
            <param name="state">TCP连接的状态</param>
            <returns>验证是否通过</returns>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.ITcpServerEngine">
            <summary>
            TCP服务端引擎。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.MessageVerifier">
            <summary>
            服务端引擎会使用MessageVerifier来验证从每个连接上接收到的消息。如果通不过验证，引擎将会关闭对应的连接。
            如果不需要验证连接上收到的消息，则设为null即可。
            （1）通常我们可以验证处于ConnectionBoundState.NotBound状态的连接上收到的所有消息的类型，如果不是期望的，则关闭对应的连接。
            （2）对于大多数应用，前面的几个消息通常是尝试登陆消息（包含了登陆密码），如果有的应用需要在客户端登陆失败时，立即关闭其对应的连接，则可以利用该机制 -- 即在IMessageVerifier的实现中，解析登录消息，并验证登陆密码。
            （3）登录通过之后，可以调用BindIPE方法，使连接进入已绑定状态。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.ExpiredSpanInSecs">
            <summary>
            某个连接连上后，如果在ExpiredSpanInSecs时间内仍然没有登录成功，则将关闭该连接。
            如果ExpiredSpanInSecs小于等于0，则不做过期检查。默认值为0。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.ConnectionCount">
            <summary>
            当前在线连接的数量。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.AsynConnectionEvent">
            <summary>
            异步引发连接成功的事件。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.MaxConnectionCount">
            <summary>
            服务器允许最大的同时连接数。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.WriteTimeoutInMSecs">
            <summary>
            给每个连接发送数据超时时间（默认为-1，无限）。如果在指定的时间内未将数据发送完，则将记录异常到日志，并关闭对应的连接。
            该属性只对同步模式发送数据有效，异步发送数据则无法设定超时时间。
            最好给该属性赋一个有限值，因为在某些情况下，发送数据可能会导致无限阻塞。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.AsynMessageQueueEnabled">
            <summary>
            是否开启异步消息队列。默认值为false。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.MaxChannelCacheSize">
            <summary>
            每个通道连接上允许最大的等待发送【包括投递】以及正在发送的消息个数。
            当等待发送以及正在发送的消息个数超过该值时，将关闭对应的连接。如果设置为0，则表示不作限制。默认值为0。
            【该设置用于防止服务器为速度慢的通道缓存太多的消息，而导致服务器内存无限制增长】
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.UseIpeAsLoginID">
            <summary>
            是否使用客户端的IPE作为其LoginID。默认值为false。通常，当客户端发过来的消息头中不包含LoginID信息，将其设为true。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.IsListening">
            <summary>
            监听器是否开启。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.IPv6Enabled">
            <summary>
            是否开启对IPv6的支持。默认值为false。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.ITcpServerEngine.IsInPlatform">
            <summary>
            【跨服】当前服务端是否作为AS节点位于群集平台中？默认值：false。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.CloseOneConnection(System.Net.IPEndPoint,ESFramework.Server.DisconnectedType)">
            <summary>
            主动关闭连接，将触发SomeOneDisconnected事件。
            </summary>     
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.CloseAllConnection">
            <summary>
            关闭所有连接。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.InvalidateConnection(System.Net.IPEndPoint)">
            <summary>
            使连接失效。如果再收到该连接上的后续消息时，则自动断开连接。（比如，用于被挤掉线）
            </summary>
            <param name="address">目标连接的客户端地址</param>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.BindConnection(System.Net.IPEndPoint,System.String)">
            <summary>
            将LoginID与对应的连接绑定起来。(比如，通过登录验证后，才将其绑定)
            </summary>
            <param name="address">要绑定的连接的客户端地址。</param>
            <param name="loginID">要绑定的用户帐号</param>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.GetConnectionBoundState(System.Net.IPEndPoint)">
            <summary>
            获取连接的绑定状态。
            </summary>
            <param name="address">目标连接的客户端地址。</param>
            <returns>如果目标连接不存在，则返回null。</returns>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.GetAddressList">
            <summary>
            获取所有在线连接的客户端的地址。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.GetPortListenerState">
            <summary>
            获取监听器的状态。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.ITcpServerEngine.HandleCrossServerMessage(ESFramework.Core.IMessage)">
            <summary>
            【跨服】处理ACMS转发过来的跨服消息（消息的接收者是服务端）。
            </summary>   
        </member>
        <member name="E:ESFramework.Engine.Tcp.Server.ITcpServerEngine.ConnectionBound">
            <summary>
            当连接与具体的LoginID绑定起来时（表明已经通过验证），触发该事件。
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Server.ITcpServerEngine.SomeOneDisconnected">
            <summary>
            当某连接断开或者从该连接上接收非法/无效的消息时，触发该事件
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Server.ITcpServerEngine.SomeOneConnected">
            <summary>
            当tcp连接建立成功时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Server.ITcpServerEngine.ConnectionCountChanged">
            <summary>
            当tcp连接数量发生变化时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Server.ITcpServerEngine.MessageReceived2">
            <summary>
            当引擎接收到消息时触发该事件。
            </summary>
        </member>
        <member name="E:ESFramework.Engine.Tcp.Server.ITcpServerEngine.CrossServerMessageReceived">
            <summary>
            【跨服】当收到要被其它AS服务器处理的消息时，触发此事件。只有当IsInPlatform时，才会检查跨服消息。
             2021.06.22
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.StreamTcpEngine">
            <summary>
            基于流协议的TCP服务端引擎。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.TextTcpEngine">
            <summary>
            基于文本的TCP服务端引擎。    
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader">
            <summary>
            WebSocket 数据帧头。（2个字节）
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.FIN">
            <summary>
            FIN
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.RSV1">
            <summary>
            RSV1
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.RSV2">
            <summary>
            RSV2
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.RSV3">
            <summary>
            RSV3
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.OpCode">
            <summary>
            OpCode
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.HasMask">
            <summary>
            是否有掩码
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.Length">
            <summary>
            Payload Length
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.#ctor(System.Byte[])">
            <summary>
            构造函数
            </summary>
            <remarks>主要用于解析接收数据</remarks>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.#ctor(System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.SByte,System.Boolean,System.Int32)">
            <summary>
            构造函数
            </summary>
            <remarks>主要用于发送封装数据</remarks>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.DataFrameHeader.GetBytes">
            <summary>
            返回帧头字节
            </summary>
            <returns></returns>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.Web.DataFrame">
            <summary>
            WebSocket 数据帧
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.DataFrame.Parse(System.Byte[],System.Int32,System.Int32@)">
            <summary>
            构造函数
            </summary>
            <remarks>主要用于解析接收数据</remarks>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.DataFrame.Mask(System.Byte[],System.Byte[])">
            <summary>
            加掩码运算
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.DataFrame.#ctor(System.Byte[],System.Boolean)">
            <summary>
            构造函数
            </summary>
            <remarks>主要用于发送封装数据</remarks>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.DataFrame.ToStream">
            <summary>
            获取适合传送的字节数据
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.DataFrame.Content">
            <summary>
            获取真正的内容数据。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.Web.Handshake">
            <summary>
            WebSokect 握手协议。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.Handshake.#ctor(System.String)">
            <summary>
            构造函数
            </summary>
            <param name="request">请求串</param>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.Handshake.KeyAccept">
            <summary>
            返回的验证码
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.Web.Handshake.GetValue(System.String)">
            <summary>
            根据键获取对应值
            </summary>
            <param name="key">键</param>
            <returns></returns>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.Web.Handshake.Response">
            <summary>
            响应串
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Tcp.Server.WebSocketEngine">
            <summary>
            兼容WebSocket（支持wss）的TCP服务端二进制引擎。    
            </summary>>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.WebSocketContextKey.IsWebClient">
            <summary>
            客户端是否为WebSocket。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.WebSocketContextKey.Buffer">
            <summary>
            Buffer 当前连接所使用的的接收缓冲区。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.WebSocketContextKey.OffsetForReceive">
            <summary>
            OffsetForReceive 从当前连接所使用的接收缓冲区的哪个偏移位置开始继续接收新来的字节。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Tcp.Server.WebSocketContextKey.MaxSizeForReceive">
            <summary>
            当前连接所使用的接收缓冲区最多还可以接纳多少字节的数据。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.WebSocketContextKey.JustReadBytes(System.Int32)">
            <summary>
            JustReadBytes 当一次数据接收完毕时，通知ContextKey本次接收了多少字节。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.WebSocketContextKey.IsBufferFull">
            <summary>
            IsBufferFull 当前连接所使用的的接收缓冲区是否已经没有空位接收新的数据了。（这通常在接收缓冲区的尺寸比最大消息的尺寸要小所导致）
            </summary>
            <returns></returns>
        </member>
        <member name="M:ESFramework.Engine.Tcp.Server.WebSocketContextKey.Reset">
            <summary>
            Reset 将接收新数据的偏移重置到接收缓冲区的起始处。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.BaseUdpEngine">
            <summary>
            BaseUdpEngine Udp引擎的基类，支持增强型的UDP。由ContractFormatStyle属性指定采用的协议类型。
            注意：理论上网络支持的最大的udp数据报为65507(64k减去各协议头)，由MaxUdpDatagramSize常量表示。 
            MaxUdpDatagramLength 属性可以设置拆分后得到的UDP数据报的最大尺寸。当要发送的消息大于MaxUdpDatagramLength时，BaseUdpEngine会将其拆分为多个小的UDP数据报发送（异步发送不会拆分消息）。
            zhuweisky 2007.04.06
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.BaseUdpEngine.Port">
            <summary>
            绑定的Udp端口。对于服务端，将会精确的绑定到指定的端口，如果端口已经被占用，则在初始化时将抛出异常；
            对于客户端，如果指定的端口被占用，则会选取相邻的端口进行绑定，此时可以通过get属性得到其绑定的端口号。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.BaseUdpEngine.ContractHelper">
            <summary>
            依据ContractFormatStyle属性，注入相应的ContractHelper
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.BaseUdpEngine.SocketSendBuffSize">
            <summary>
            网卡发送缓冲区大小。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.BaseUdpEngine.SocketReceiveBuffSize">
            <summary>
            网卡接收缓冲区大小。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.BaseUdpEngine.ReliableUdpEngine">
            <summary>
            引擎内部采用的EnhancedUdpClient实例。        
            get方法：如果UseEnhancedUdp为false，则返回null。暴露该属性使得应用可以监控增强型的EnhancedUdpClient的运行状态。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Receiver.IMessagBagParser">
            <summary>
            用于在指定的连接或端口上接收数据。用于UDP引擎（服务端和客户端）以及客户端的Tcp引擎。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Receiver.IMessagBagParser.ParseMessageBag(System.Net.IPEndPoint,System.Byte[])">
            <summary>
            执行一次接收操作，如果没有完整的消息，则返回null。      
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Receiver.MessageBag">
            <summary>
            如果是一个有效消息，则Valid属性为true，且Message属性可用；如果是一个无效消息，则Valid属性为false，且ValidData属性可用。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.IPv6UdpClient">
            <summary>
            兼容IPv6的UdpClient。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.IPv6UdpClient.SecurityLogEnabled">
            <summary>
            是否记录安全日志。默认值为false。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.IUdpClient.Send(System.Byte[],System.Net.IPEndPoint)">
            <summary>
            向指定的端点发送UDP数据报。
            </summary>
            <param name="rudeData">要发送的数据报</param>
            <param name="endPoint">目标端点</param>        
        </member>
        <member name="M:ESFramework.Engine.Udp.IUdpClient.Post(System.Byte[],System.Net.IPEndPoint)">
            <summary>
            向指定的端点投递UDP数据报。
            </summary>
            <param name="rudeData">要投递的数据报</param>
            <param name="endPoint">目标端点</param>        
        </member>
        <member name="T:ESFramework.Engine.Udp.IUdpEngine">
            <summary>
            IUdpEngine Udp引擎基础接口。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.IUdpEngine.ContractFormatStyle">
            <summary>
            引擎所采用的协议类型（二进制、文本）。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.IUdpEngine.Reliable">
            <summary>
            内部是否使用可靠的UDP。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.IUdpEngine.ReliableUdpEngine">
            <summary>
            引擎内部采用的EnhancedUdpClient实例。       
            get方法：如果UseEnhancedUdp为false，则返回null。暴露该属性使得应用可以监控增强型的EnhancedUdpClient的运行状态。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Passive.IUdpPassiveEngine">
            <summary>
            基于UDP的客户端引擎接口。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Passive.IUdpPassiveEngine.SendMessage(ESFramework.Core.IMessage,System.Net.IPEndPoint)">
            <summary>
            向指定的端点发送UDP消息。注意：如果引擎已经停止，则直接返回。
            </summary>
            <param name="message">要发送的消息</param>
            <param name="address">目标端点</param>           
        </member>
        <member name="M:ESFramework.Engine.Udp.Passive.IUdpPassiveEngine.PostMessage(ESFramework.Core.IMessage,System.Net.IPEndPoint)">
            <summary>
            向指定的端点投递UDP消息。注意：如果引擎已经停止，则直接返回。
            </summary>
            <param name="message">要投递的消息</param>
            <param name="address">目标端点</param>           
        </member>
        <member name="T:ESFramework.Engine.Udp.Passive.UdpPassiveEngine">
            <summary>
            客户端Udp引擎。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.ReliableDatagramType.Data">
            <summary>
            包含了应用层数据的数据报。并且该应用层的数据必须保证被正序地传送给接收方。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.ReliableDatagramType.LostableData">
            <summary>
            可被丢弃数据报。
            </summary> 
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.ReliableDatagramType.FeedbackVacancy">
            <summary>
            接收方定时发送期望接收的数据报的ID给发送方。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.ReliableDatagramType.Exit">
            <summary>
            当前进程要退出时，调用此方法通知对方。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Reliable.SessionClosedCause">
            <summary>
            UDP Session关闭的原因。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.FeedbackTimeout">
            <summary>
            （从OutUdpSession的角度）反馈超时
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.ResendTimeout">
            <summary>
            （从OutUdpSession的角度）重发超时关闭
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.SocketException">
            <summary>
            （从OutUdpSession的角度）发送数据时，遭遇异常而关闭
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.DestExit">
            <summary>
            对方退出进程
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.HeartBeatTimeout">
            <summary>
            （从InUdpSession的角度）来自对方的心跳超时。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.ActiveClose">
            <summary>
            主动关闭
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.DestClose">
            <summary>
            对方关闭了Session
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.SessionClosedCause.DestIdentityChanged">
            <summary>
            对方进程的标志发生了变化
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.NotAckedDatagram.TimeSended">
            <summary>
            首次发送的时间。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.ReliableUdpHeader.Identity">
            <summary>
            用于标志消息发送者的身份。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.ReliableUdpHeader.BodyLength">
            <summary>
            消息体的长度。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Reliable.MTUs">
            <summary>
            常见的网络的最大传输单元值。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.MTUs.MTUValueArrayInAscOrder">
            <summary>
            常见的MTU值的数组，升序排列
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.SuperChannel">
            <summary>
            超通道。65535
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.TokenRing16M">
            <summary>
            16M令牌环。17914
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.TokenRing4M">
            <summary>
            4M令牌环。4464
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.FDDI">
            <summary>
            4352
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.Ethernet">
            <summary>
            以太网。1500
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.IEEE802_3">
            <summary>
            IEEE802.3/802.2。1492
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.X_25">
            <summary>
            X.25。576
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.MTUs.LowDelay">
            <summary>
            点对点，低时延。296
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.DestIPE">
            <summary>
            当前session对方的端点。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.OpenTime">
            <summary>
            UdpSession打开的时间。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.SlideWindowSize">
            <summary>
            滑动窗口的大小
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.WaitAckCount">
            <summary>
            发送之后等待确认的数据报个数。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.ResendCount">
            <summary>
            重发的次数。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.MaxDatagramIDSended">
            <summary>
            已经发送的最大的数据报ID。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.MaxDatagramIDReceivedOtherSide">
            <summary>
            对方已经接收的最大的数据报ID。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.CountInRecieveCacheOtherSide">
            <summary>
            对方接收缓存中数据报的个数。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.PMTU">
            <summary>
            当前使用的PMTU的值。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.PingCount">
            <summary>
            已经发送的ping个数
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.PingReceivedCount">
            <summary>
            接收到对方的ping的个数
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSessionState.PingAckCount">
            <summary>
            已经接收的pingAck个数
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSessionState.DestIdentity">
            <summary>
            对方的身份标志
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSessionState.DestIPE">
            <summary>
            当前session对方的端点。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSessionState.OpenTime">
            <summary>
            UdpSession打开的时间。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSessionState.MaxDatagramIDReceived">
            <summary>
            已经发送的最大的数据报ID。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSessionState.FeedbackVacancySpanInMSecs">
            <summary>
            快速重传请求的时间间隔
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSessionState.CountInRecieveCache">
            <summary>
            接收缓存中数据报的个数。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.FeedbackVacancyBody.MinIDInReceivedCache">
            <summary>
            缓存中未被提取的数据报的最小ID
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.FeedbackVacancyBody.MaxIDInReceivedCache">
            <summary>
            缓存中未被提取的数据报的最大ID
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.FeedbackVacancyBody.VacancyIDArray">
            <summary>
            空缺的ID,升序排列
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Reliable.DataBody">
            <summary>
            DataBody 包含了不可丢弃的数据或可丢弃的数据的消息体。 附加消息为8字节。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.LostableDataBody.Data">
            <summary>
            rudeData，未增强的
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Reliable.DataFragmentType">
            <summary>
            数据块分片的类型。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.DataFragmentType.Single">
            <summary>
            没有分片
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.DataFragmentType.Begin">
            <summary>
            数据块的第一个分片
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.DataFragmentType.Middle">
            <summary>
            数据块的中间个分片
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.DataFragmentType.End">
            <summary>
            数据块的最后一个分片
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Reliable.WrongDataFragmentTypeException">
            <summary>
            当接收到错误的数据片段类型时，将触发该事件。通常是因为对方在发送后续片段时，session被重置导致的。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.PingAckBody.MaxDatagramIDReceived">
            <summary>
            MaxDatagramIDReceived 已经接收的最大的数据报ID。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.PingAckBody.ReceiveCacheCount">
            <summary>
            接收缓存中未被提取的数据报个数。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.PingAckBody.SlideWindowSize">
            <summary>
            滑动窗口的大小。
            </summary>
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.ReliableUdpDatagram.Identity">
            <summary>
            当前用户的UDP身份标记。在进程生命周期内，不会被改变。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSession.DestIdentity">
            <summary>
            对方的进程标志
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSession.OpenTime">
            <summary>
            UdpSession打开的时间。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSession.DestIPEndPoint">
            <summary>
            当前session对方的端点。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSession.FeedbackVacancySpanInMSecs">
            <summary>
            定时反馈的时间间隔。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.InUdpSession.LastHeartBeatTime">
            <summary>
            最后收到对方消息（任何数据）的时间。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.InUdpSession.DoPickRudeData">
            <summary>
            提取下一个正序的数据报。如果当前缓存没有数据报或没有正序的数据报，则返回null。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.InUdpSession.FeedbackVacancy(System.Int32)">
            <summary>
            向发送方反馈当前接收缓存中的空缺状态。
            </summary>
            <param name="spanInMsecs">距离上一次调用该方法的时间间隔。不能超过10ms</param>
        </member>
        <member name="E:ESFramework.Engine.Udp.Reliable.IReliableHelper.SynAckReceived">
            <summary>
            第一个参数为接收到Syn的IPE。（由于客户端有NAT之前的IPE和NAT之后的IPE，所以要加以区分）   
            第二个参数为接收到Syn的SecondID
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.IReliableHelper.Exit(System.String)">
            <summary>
            当前进程要退出时，调用此方法，通知对方，及时释放UdpSession。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.IReliableUdpEngine.Syn(System.Net.IPEndPoint)">
            <summary>
            向目标端点发送尝试连接的Syn消息。
            </summary> 
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.IUdpSession.DestSecondID">
            <summary>
            在MSide中，DestSecondID为LoginID。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSession.OpenTime">
            <summary>
            UdpSession打开的时间。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSession.DestIPEndPoint">
            <summary>
            当前session对方的端点。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSession.SlideWindowSize">
            <summary>
            当WaitAckCount到达该设定值时，再次调用Send方法，将阻塞线程，直至WaitAckCount低于该设定值。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.OutUdpSession.FeedbackFromUdp">
            <summary>
            从UDP通道收到了接收方的反馈信息？即反向的UDP通道是否能通？
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.OutUdpSession.SendFragment(System.Byte[],System.Int32,System.Int32,ESFramework.Engine.Udp.Reliable.DataFragmentType)">
            <summary>
            将数据报经过增强后，发送到网络，并缓存。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.OutUdpSession.Resend(System.Int32)">
            <summary>
            定时重发ID最小的未确认数据报。（并检查对方的重发是否超时）
            </summary>
            <param name="spanInMsecs">距离上一次调用该方法的时间间隔</param>
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.OutUdpSession.CheckFeedback">
            <summary>
            检测反馈是否超时。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Reliable.ReceivingCircleBuffer`1">
            <summary>
            根据数据报ID与初始ID的差值，定位数据报应该存放的位置。
            </summary>   
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.ReceivingCircleBuffer`1.MaxID">
            <summary>
            曾加入过缓存中的最大ID值。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.ReceivingCircleBuffer`1.Capacity">
            <summary>
            缓存的最大容量
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.ReceivingCircleBuffer`1.HeadID">
            <summary>
            头元素的ID。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.ReceivingCircleBuffer`1.Count">
            <summary>
            缓存中元素的个数
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.ReceivingCircleBuffer`1.GetVacancyIDs(System.Int32,System.UInt64@,System.UInt64@)">
            <summary>
            获取所有空缺的ID，包括期望接收的下一个ID（比maxID大1）。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.ReceivingCircleBuffer`1.GetDescendingVacancyIDs(System.Int32,System.UInt64@,System.UInt64@)">
            <summary>
            从大到小获取空缺的数据报ID。
            </summary>       
        </member>
        <member name="F:ESFramework.Engine.Udp.Reliable.ReliableUdpEngine.TimeoutInSecs">
            <summary>
            重发超时、Vacancy反馈超时、心跳超时
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.ReliableUdpEngine.SecondID">
            <summary>
            IPEndPoint作为第一ID，第二ID作为辅助标志，非必须。
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.ReliableUdpEngine.OnSynAck(System.Net.IPEndPoint,System.String)">
            <summary>
             接收到了来自对方的SynAck。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.ReliableUdpEngine.Syn(System.Net.IPEndPoint)">
            <summary>
            向目标端点发送尝试连接的Syn消息。
            </summary>       
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.ReliableUdpEngine.OnSyn(System.Byte,System.String,System.Net.IPEndPoint,ESFramework.AgileIPE)">
            <summary>
            接收到了来自对方的Syn消息。
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.ReliableUdpEngine.Send(System.Byte[],System.Net.IPEndPoint)">
            <summary>
            将数据报增强后发送到网络。（采用可靠模式）
            </summary>
            <param name="rudeData">要发送的数据报</param>
            <param name="endPoint">接收数据报的目标端点</param>        
        </member>
        <member name="E:ESFramework.Engine.Udp.Reliable.SendingCircleBuffer`1.SessionResetted">
            <summary>
            当MaxID为0，而AckID大于0时，则认为当前session已重置，触发该事件。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.SendingCircleBuffer`1.MaxID">
            <summary>
            曾加入过缓存中的最大ID值。
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.SendingCircleBuffer`1.Capacity">
            <summary>
            缓存的最大容量
            </summary>
        </member>
        <member name="P:ESFramework.Engine.Udp.Reliable.SendingCircleBuffer`1.Count">
            <summary>
            缓存中元素的个数
            </summary>
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.SendingCircleBuffer`1.RemoveSmaller(System.UInt64)">
            <summary>
            移除小于等于ackID的数据。（表明对方已经收到了标志为ackID的数据报）
            </summary>        
        </member>
        <member name="M:ESFramework.Engine.Udp.Reliable.SendingCircleBuffer`1.RemoveBetween(System.UInt64,System.UInt64)">
            <summary>
            移除startID-endID之间的数据，包含startID和endID。
            </summary>        
        </member>
        <member name="T:ESFramework.Engine.Udp.Server.IUdpServerEngine">
            <summary>
            基于UDP的服务端引擎接口。
            </summary>
        </member>
        <member name="T:ESFramework.Engine.Udp.Server.UdpServerEngine">
            <summary>
            服务端Udp引擎。
            </summary>
        </member>
        <member name="T:ESFramework.NetServer">
            <summary>
            规定：
            （1）普通用户编号只能由数字和字母组成（严格区分大小写），并且其最大长度会由IMessageHeader的实现类给出具体限制。
            （2）系统的虚拟账号使用"_"开头。    
            （3）以"_"开头的，并且不是"_0"，表示为群集中的其它的服务端的serverToken。
            </summary>
        </member>
        <member name="F:ESFramework.NetServer.ServerTokenPrefix">
            <summary>
            消息头中，扩展DestUserID“_”开头的使用范围，则“_0”表示当前AS，“_xxxx”，后面的xxxx表示ServerToken。ServerToken用于标记该消息由哪台AS来处理。【目前主要用于与群相关的消息】。
            当AS收到DestUserID为“_xxxx”的消息时，则直接交给ACMS转发。ACMS收到第一个“_xxxx”消息时，将xxxx与来源AS的ServerID绑定，之后所有的“_xxxx”消息都会分配到这台AS处理。
            AS收到来自ACMS转发的“_xxxx”消息，就将xxxx保存在ServerToken列表中。之后，AS收到DestUserID为“_xxxx”的消息时，如果xxxx在ServerToken列表中，就直接处理，不需要再提交给ACMS转发了。       
            </summary>
        </member>
        <member name="F:ESFramework.NetServer.SystemUserID">
            <summary>
            当系统向客户发送消息时，消息头中source使用NetServer.SystemUserID
            </summary>
        </member>
        <member name="F:ESFramework.NetServer.MultiUserID">
            <summary>
            当服务端向多个客户发送同一个消息时，消息头中Dest使用NetServer.MultiUserID
            </summary>
        </member>
        <member name="M:ESFramework.NetServer.IsServerUser(System.String)">
            <summary>
            是否为代表服务器的虚拟用户ID，以"_"开头
            </summary>       
        </member>
        <member name="T:ESFramework.Passive.ActionTypeOnNoP2PChannel">
            <summary>
            当要经过P2P发送消息而P2P通道又不存在时，采取的操作。
            </summary>
        </member>
        <member name="F:ESFramework.Passive.ActionTypeOnNoP2PChannel.TransferByServer">
            <summary>
            通过服务器中转
            </summary>
        </member>
        <member name="F:ESFramework.Passive.ActionTypeOnNoP2PChannel.Discard">
            <summary>
            丢弃消息
            </summary>
        </member>
        <member name="T:ESFramework.Passive.ContainerStylePassiveProcesser">
            <summary>
            客户端通过此处理器来处理接收到的所有消息。2011.01.25最后修改。
            (1)将指定MessageType的消息进行Push到responseManager以等到以后提取。    
            (2)如果AsynMessageQueueEnabled为true，则启动消息队列，所有接收到的非push消息都先放到队列中，再由后台线程逐个取出处理。
            (3)如果AsynMessageQueueEnabled设为false，则将处理完一个消息后，才会接收下一个消息。
            </summary>
        </member>
        <member name="P:ESFramework.Passive.ContainerStylePassiveProcesser.ProcesserList">
            <summary>
            挂接的所有客户端消息处理器的列表。
            </summary>
        </member>
        <member name="P:ESFramework.Passive.ContainerStylePassiveProcesser.ResponseManager">
            <summary>
            用于管理从服务器接收的待提取的回复消息。
            </summary>
        </member>
        <member name="P:ESFramework.Passive.ContainerStylePassiveProcesser.PushKeyDispersiveKeyScope">
            <summary>
            增加待提取的消息类型的离散集合。
            </summary>
        </member>
        <member name="P:ESFramework.Passive.ContainerStylePassiveProcesser.EsfLogger">
            <summary>
            日志记录器。
            </summary>
        </member>
        <member name="P:ESFramework.Passive.ContainerStylePassiveProcesser.AsynMessageQueueEnabled">
            <summary>
            是否启用异步消息队列，默认值true。
            注意，如果需要在处理某个消息时，又要同步调用服务器，则必须设为true，否则，将会一直阻塞到调用超时。
            最好不要在消息处理线程中发出同步调用，因为即使开启了异步队列，如果同步调用的回复比较久，在这段时间内也会一直堵塞处理线程，导致后续的消息不能及时处理。
            </summary>
        </member>
        <member name="P:ESFramework.Passive.ContainerStylePassiveProcesser.MessageTransceiver">
            <summary>
            用于发送异步消息处理的结果。如果AsynMessageQueueEnabled为false，则该属性不需要设置。
            </summary>
        </member>
        <member name="M:ESFramework.Passive.ContainerStylePassiveProcesser.AddPushedMessageType(System.Int32)">
            <summary>
            增加待提取的消息类型。
            </summary>
            <param name="messageType">待提取的消息类型</param>
        </member>
        <member name="M:ESFramework.Passive.ContainerStylePassiveProcesser.Dispose">
            <summary>
            释放异步消息队列线程。
            </summary>
        </member>
        <member name="T:ESFramework.Passive.IP2PChannelManager">
            <summary>
            用于管理所有客户《＝》客户之间的P2P通道。
            zhuweisky 2006.06.02
            </summary>
        </member>
        <member name="M:ESFramework.Passive.IP2PChannelManager.SendMessage(System.String,ESFramework.Core.IMessage,System.Boolean,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            通过P2PChannel发送消息。
            </summary>
            <param name="destLoginID">目标用户ID</param>
            <param name="msg">要发送的消息（注意，该消息已经过MessagePipe）</param>            
            <param name="post">是否采用Post模式发送消息</param>  
            <param name="action">当通道繁忙时所采取的动作</param>  
            <returns>如果P2PChannel存在且可用，则返回true（即使P2P通道繁忙而被丢弃）；否则返回false。</returns>    
        </member>
        <member name="M:ESFramework.Passive.IP2PChannelManager.IsP2PChannelExist(System.String)">
            <summary>
            到目标用户的P2P通道是否存在。
            </summary>
            <param name="destLoginID">目标用户ID</param>        
        </member>
        <member name="T:ESFramework.Passive.IPassiveEngine">
            <summary>
            客户端引擎。封装了数据接收线程，完全向客户端隐藏了网络通信细节。
            Client所有的通过网络发送/接收数据都通过IPassiveEngine进行	
            zhuweisky 2006.01.12
            </summary>
        </member>
        <member name="P:ESFramework.Passive.IPassiveEngine.ServerIPEndPoint">
            <summary>
            服务器地址。
            </summary>
        </member>
        <member name="P:ESFramework.Passive.IPassiveEngine.ChannelIsBusy">
            <summary>
            发送消息的通道是否正忙。使用者可以根据该属性决定是否要丢弃后续某些消息的发送。
            </summary>
        </member>
        <member name="M:ESFramework.Passive.IPassiveEngine.CommitMessageToServer(ESFramework.Core.IMessage,System.Boolean,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            将消息发送（同步）或投递（异步）给服务器，不经任何处理，直接发送。如果消息没有被成功发送（比如被丢弃），则返回false；否则，返回true。
            注意：如果引擎已经停止，则直接返回false。 
            </summary>
            <param name="msg">要发送的消息</param>
            <param name="action">当通道繁忙时，所采取的动作</param>
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESFramework.Passive.IPassiveEngine.GetSendingCount">
            <summary>
            获取尚未发送完成的消息个数。
            </summary>		
        </member>
        <member name="T:ESFramework.Passive.IMessageTransceiver">
            <summary>
            消息收发器。可将异步的消息请求/回复转化为同步调用。	
            </summary>
        </member>
        <member name="P:ESFramework.Passive.IMessageTransceiver.Connected">
            <summary>
            与服务器是否连接。如果是基于UDP，则返回null。
            </summary>
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.IsP2PChannelExist(System.String)">
            <summary>
            到目标用户的P2P通道是否存在。
            </summary>
            <param name="destLoginID">目标用户ID</param>        
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.Send(ESFramework.Core.IMessage,System.Boolean,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
             发送数据。
            （1）如果为非P2P消息，则直接向服务器提交。
            （2）如果消息为P2P（即接收者是另一个在线用户），当目标用户的P2PChannel可用且可靠（比如TCP通道、或增强的UDP通道），则将通过P2PChannel向该用户发送。否则，也是直接向服务器提交。     
            </summary>
            <param name="msg">要提交的消息</param>   
            <param name="post">是否采用Post模式发送消息</param>  
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.SendToServer(ESFramework.Core.IMessage,System.Boolean,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            向服务器发送消息。
            </summary>
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.SendByP2PChannel(ESFramework.Core.IMessage,ESFramework.Passive.ActionTypeOnNoP2PChannel,System.Boolean,System.String,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            使用P2P通道（不一定可靠）将消息发送给其他在线用户。
            </summary>
            <param name="p2pMessage">要提交的P2P消息</param>      
            <param name="actionType">当为P2P通道不存在时，采取的策略</param>
            <param name="msg">是否采用Post模式发送消息</param>  
            <param name="destLoginID">接收P2P消息的用户ID</param>
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.Commit(ESFramework.Core.IMessage,System.Nullable{System.Int32})">
            <summary>
            提交数据并返回应答。如果resMessageType不为null，且超时仍然没有回复，则抛出超时异常TimeoutException。         
            （1）如果为非P2P消息（即接收者是服务端），则直接向服务器提交。
            （2）如果消息为P2P（即接收者是另一个在线用户），当目标用户的P2PChannel可用且可靠（比如TCP通道、或增强的UDP通道），则将通过P2PChannel向该用户发送。否则，也是直接向服务器提交。     
            </summary>
            <param name="msg">要提交的消息</param>      
            <param name="resMessageType">期望应答消息的类型</param>
            <returns>应答消息</returns>     
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.Commit(ESFramework.Core.IMessage,System.Int32,ESFramework.Core.ResponseHandler,System.Object)">
            <summary>
            提交请求，当框架接收到回复时，将自动回调responseHandler进行处理。        
            （1）如果为非P2P消息，则直接向服务器提交。
            （2）如果消息为P2P（即接收者是另一个在线用户），当目标用户的P2PChannel可用且可靠（比如TCP通道、或增强的UDP通道），则将通过P2PChannel向该用户发送。否则，也是直接向服务器提交。     
            </summary>
            <param name="msg">要提交的请求</param>      
            <param name="resMessageType">期望应答消息的类型</param>
            <param name="responseHandler">用于处理回复消息的方法</param>     
            <param name="state">携带的状态数据，将被传递给回调函数responseHandler</param>            
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.CommitToServer(ESFramework.Core.IMessage,System.Nullable{System.Int32})">
            <summary>
            向服务器提交数据。该消息即使消息为P2P，也一定经过服务器中转。如果resMessageType不为null，且超时仍然没有回复，则抛出超时异常TimeoutException。（对于有些P2P消息，服务器可能必须要拦截处理）
            </summary>
            <param name="requestMsg">要提交的消息</param>      
            <param name="resMessageType">期望应答消息的类型</param>
            <returns>应答消息</returns>
        </member>
        <member name="M:ESFramework.Passive.IMessageTransceiver.CommitToServer(ESFramework.Core.IMessage,System.Int32,ESFramework.Core.ResponseHandler,System.Object)">
            <summary>
            向服务器提交数据。该消息即使消息为P2P，也一定经过服务器中转。（对于有些P2P消息，服务器可能必须要拦截处理）
            </summary>
            <param name="requestMsg">要提交的消息</param>      
            <param name="resMessageType">期望应答消息的类型</param>
            <param name="responseHandler">用于处理回复消息的方法</param>   
            <param name="state">携带的状态数据，将被传递给回调函数responseHandler</param>        
        </member>
        <member name="T:ESFramework.Passive.MessageTransceiver">
            <summary>
            IMessageTransceiver 的默认实现。
            </summary>
        </member>
        <member name="T:ESFramework.Passive.IRegularSender">
            <summary>
            客户端正规消息发送器。将消息发送给服务端或其他在线用户（可使用P2P通道），并保证消息在发送之前经过MessagePipe。  
            </summary>
        </member>
        <member name="P:ESFramework.Passive.IRegularSender.Connected">
            <summary>
            与服务器是否连接。如果是基于UDP，则返回null。
            </summary>
        </member>
        <member name="M:ESFramework.Passive.IRegularSender.IsP2PChannelExist(System.String)">
            <summary>
            到目标用户的P2P通道是否存在。
            </summary>
            <param name="destLoginID">目标用户ID</param>        
        </member>
        <member name="M:ESFramework.Passive.IRegularSender.SendMessage(ESFramework.Core.IMessage,System.Boolean,System.Boolean,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            将消息发送给服务端或其他在线用户（如果P2P通道可用，且可靠（比如TCP通道、或增强的UDP通道），则将使用P2P通道发送），并保证消息在发送之前经过MessagePipe。
            </summary>
            <param name="msg">要发送的消息</param>      
            <param name="directToServer">如果值为true，当为P2P消息时，即使P2P Channel可用，是否也通过服务器中转</param>     
            <param name="post">是否采用Post模式发送消息</param>  
            <param name="action">当通道繁忙时所采取的动作</param>  
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESFramework.Passive.IRegularSender.SendByP2PChannel(ESFramework.Core.IMessage,ESFramework.Passive.ActionTypeOnNoP2PChannel,System.Boolean,System.String,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            使用P2P通道（不一定可靠）将消息发送给其他在线用户，并保证消息在发送之前经过MessagePipe。
            </summary>
            <param name="p2pMessage">要发送的P2P消息</param>      
            <param name="actionType">当为P2P通道不存在时，采取的策略</param>    
            <param name="post">是否采用Post模式发送消息</param>  
            <param name="destLoginID">接收P2P消息的用户ID</param>
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="T:ESFramework.Passive.RegularSender">
            <summary>
            IRegularSender接口的默认实现。
            </summary>
        </member>
        <member name="T:ESFramework.Server.IServerEngine">
            <summary>
            服务端引擎接口。
            </summary>
        </member>
        <member name="P:ESFramework.Server.IServerEngine.ServerID">
            <summary>
            当前服务器的唯一标识。该属性用于ESPlatform。       
            </summary>
        </member>
        <member name="M:ESFramework.Server.IServerEngine.ChannelIsBusy(System.Net.IPEndPoint)">
            <summary>
            到目标客户的通道是否繁忙？
            </summary>
        </member>
        <member name="M:ESFramework.Server.IServerEngine.SendMessageToClient(System.Net.IPEndPoint,ESFramework.Core.IMessage,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            主动给某个客户同步发信息，不经任何处理，直接发送。注意：如果引擎已经停止，则直接返回false。如果消息没有被成功发送（比如被丢弃），则返回false；否则，返回true。      
            </summary>		
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESFramework.Server.IServerEngine.PostMessageToClient(System.Net.IPEndPoint,ESFramework.Core.IMessage,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            主动给某个客户异步投递信息，不经任何处理，直接发送。如果消息没有被成功发送（比如被丢弃），则返回false；否则，返回true。
            注意：如果引擎已经停止，则直接返回false。      
            </summary>		
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESFramework.Server.IServerEngine.PostMessageToClient(System.Net.IPEndPoint,ESFramework.Core.IMessage,System.String,System.Int32,System.Boolean)">
            <summary>
            实现有依赖关系的可丢弃的消息发送。
            （1）如果等待发送的消息个数大于discardPostingCount时，则丢弃当前消息。
            （2）当前数据是否依赖上一次发送的数据。如果依赖，当上一次数据被丢弃时，则直接丢弃当前消息。        
            </summary>
        </member>
        <member name="T:ESFramework.Server.DisconnectedType">
            <summary>
            客户端连接断开的原因分类。
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.NetworkInterrupted">
            <summary>
            网络连接中断。
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.InvalidMessage">
            <summary>
            无效的消息。
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.MessageWithWrongLoginID">
            <summary>
            消息中的LoginID与当前连接的OwnerID不一致。
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.HeartBeatTimeout">
            <summary>
            心跳超时。
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.BeingPushedOut">
            <summary>
            被同名用户挤掉线。（发生于RelogonMode为ReplaceOld）
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.NewConnectionIgnored">
            <summary>
            当已经有同名用户在线时，新的连接被忽略。（发生于RelogonMode为IgnoreNew） 
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.ChannelCacheOverflow">
            <summary>
            等待发送以及正在发送的消息个数超过了MaxChannelCacheSize的设定值。
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.UnauthorizedClientType">
            <summary>
            未授权的客户端类型
            </summary>
        </member>
        <member name="F:ESFramework.Server.DisconnectedType.MaxConnectionCountLimitted">
            <summary>
            已达到最大连接数限制
            </summary>
        </member>
        <member name="T:ESFramework.Server.IRegularSender">
            <summary>
            服务端正规消息发送器。服务器主动将消息（如通知）发送给指定的目标用户，并保证消息在发送之前经过MessagePipe。
            有的应用可能需要考虑到：目标用户可能连接在其它服务器节点上，此时可以overrride SendMessageToForeigner方法。
            </summary>
        </member>
        <member name="M:ESFramework.Server.IRegularSender.HandleCrossServerMessage(ESFramework.Core.IMessage)">
            <summary>
            【跨服】处理ACMS转发过来的跨服消息（消息的接收者是服务端）。
            </summary>   
        </member>
        <member name="M:ESFramework.Server.IRegularSender.PostMessage(ESFramework.Core.IMessage,System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            实现有依赖关系的可丢弃的消息发送。
            （1）如果等待发送的消息个数大于discardPostingCount时，则丢弃当前消息。
            （2）当前数据是否依赖上一次发送的数据。如果依赖，当上一次数据被丢弃时，则直接丢弃当前消息。
            </summary> 
            <param name="token4RecordPosting">消息计数标记。</param>     
            <param name="discardPostingCount">当等待投递的消息数大于该值时，就丢弃消息。</param>     
            <param name="dependOnPre">当前数据是否依赖上一次发送的数据。如果依赖，当上一次数据被丢弃时，直接丢弃当前数据。</param>
        </member>
        <member name="T:ESFramework.Server.RegularSender">
            <summary>
            服务端正规消息发送器IRegularSender接口的默认实现。
            </summary>
        </member>
        <member name="M:ESFramework.Server.RegularSender.SendMessageToOtherServer(ESFramework.Core.IMessage)">
             <summary>
            【跨服】将消息发送给其它服务器去处理。
             </summary>
             <param name="msg">未经过MesssagePipe的原始消息</param>        
        </member>
        <member name="M:ESFramework.Server.RegularSender.HandleCrossServerMessage(ESFramework.Core.IMessage)">
            <summary>
            【跨服】处理ACMS转发过来的跨服消息（消息的接收者是服务端）。
            </summary>   
        </member>
        <member name="P:ESFramework.Server.ServerTokenManager.ServerTokenEnabled">
            <summary>
            是否开启ServerToken？以支持将与群组相关的消息路由到其他的AS。默认值：false。
            </summary>
        </member>
        <member name="M:ESFramework.Server.ServerTokenManager.IsCrossServer(System.String)">
            <summary>
            【跨服】serverToken是否表示为群集中的其它的服务端？
            </summary>      
        </member>
        <member name="T:ESFramework.Server.UserManagement.ILoginDeviceDisplayer">
            <summary>
             用于显示所有在线用户的状态信息。	
             zhuweisky 2004.04.22
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceDisplayer.ClearAll">
            <summary>
            清除所有。通常是通信引擎停止时被调用。
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceDisplayer.RemoveLoginDevice(System.String,System.String)">
            <summary>
            移除用户。通常在用户下线时被调用。
            </summary>       
        </member>
        <member name="T:ESFramework.Server.UserManagement.EmptyUserDisplayer">
            <summary>
            不显示在线用户的状态信息。NullObject模式。
            </summary>
        </member>
        <member name="T:ESFramework.Server.UserManagement.ILoginDeviceManager">
            <summary>
            在线用户管理器接口。注意，IUserManager仅仅管理当前AS上的所有在线用户，所以其暴露的所有事件、属性、方法都是针对当前AS上的用户的。
            如果要获取ESPlatform全局在线用户的信息，需要访问IPlatformUserManager接口。      
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.ILoginDeviceManager.LoginDeviceCount">
            <summary>
            当前在线用户的数量。
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.IsDeviceOnLine(System.String)">
            <summary>
            目标用户是否在线。
            </summary>       
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.GetLoginDeviceData(System.String)">
            <summary>
            获取目标在线用户的基础信息。
            </summary>
            <param name="loginID">目标用户的ID</param>
            <returns>如果目标用户不在线，则返回null</returns>
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.GetAllLoginDeviceData">
            <summary>
            获取所有在线用户信息。
            </summary>       
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.SetP2PAddress(System.String,ESFramework.Server.UserManagement.P2PAddress)">
            <summary>
            记录客户端上报的P2P地址。如果目标用户不在线，则忽略。
            </summary>
            <param name="loginID">客户端用户的ID</param>
            <param name="addr">P2P地址</param>
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.GetOnlineLoginIDList">
            <summary>
            获取在线用户的ID列表。
            </summary>        
        </member>
        <member name="P:ESFramework.Server.UserManagement.ILoginDeviceManager.UserDisplayer">
            <summary>
            用户管理器依赖该属性显示所有在线用户的状态信息。	
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.Initialize">
            <summary>
            初始化用户管理器。
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.GetUserAddress(System.String)">
            <summary>
            如果用户不在线，返回null	
            </summary>  
        </member>
        <member name="M:ESFramework.Server.UserManagement.ILoginDeviceManager.LogonOtherServer(System.String)">
            <summary>
            该方法用于Platform，用于接受平台的回调通知。当RelogonMode为ReplaceOld时，同名用户在同一群集的其它的应用服务器上登陆。将触发SomeOneBeingPushedOut事件。
            </summary>
            <param name="loginID">同名登陆的用户ID。</param>       
        </member>
        <member name="E:ESFramework.Server.UserManagement.ILoginDeviceManager.SomeOneDisconnected">
            <summary>
            客户端连接断开下线时，触发此事件。不要远程预定该事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.ILoginDeviceManager.SomeOneConnected">
            <summary>
            当客户端登录成功时，触发此事件。不要远程预定该事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.ILoginDeviceManager.SomeOneBeingPushedOut">
            <summary>
            当从另外一个新连接上收到一个同名ID用户的成功登录时，将触发此事件。
            注意，只有在该事件处理完毕后，才会真正关闭旧的连接并使用新的地址取代旧的地址。可以在该事件的处理函数中，将相关情况通知给旧连接的客户端。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.ILoginDeviceManager.SomeOneTimeOuted">
            <summary>
            用户心跳超时。
            只有在该事件处理完毕后，才关闭对应的连接，并将其从用户列表中删除。可以在该事件的处理函数中，将相关情况通知给客户端。            
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.ILoginDeviceManager.UserCountChanged">
            <summary>
            当在线用户数发生变化时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.ILoginDeviceManager.P2PAddressChanged">
            <summary>
            当某个设备的P2PAddress地址被修改时，将触发此事件。参数为 LoginID - P2PAddress
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.ILoginDeviceManager.UserTagChanged">
            <summary>
            当某个用户的携带数据被修改时，将触发此事件。参数为 LoginID - tag
            </summary>
        </member>
        <member name="T:ESFramework.Server.UserManagement.IPlatformUserManager">
            <summary>
            在ESPlatform群集中的用户管理器（使用于ACMS服务器）。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.IPlatformUserManager.UserCount">
            <summary>
            当前在线用户的数量。
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.IPlatformUserManager.IsUserOnLine(System.String)">
            <summary>
            目标用户是否在线。
            </summary>       
        </member>
        <member name="M:ESFramework.Server.UserManagement.IPlatformUserManager.GetOnlineUserList">
            <summary>
            获取在线用户的ID列表。
            </summary>        
        </member>
        <member name="M:ESFramework.Server.UserManagement.IPlatformUserManager.GetUserData(System.String)">
            <summary>
            获取目标在线用户的基础信息。
            </summary>
            <param name="loginID">目标用户的ID</param>
            <returns>如果目标用户不在线，则返回null</returns>
        </member>
        <member name="M:ESFramework.Server.UserManagement.IPlatformUserManager.SelectOnlineUserFrom(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            从目标用户集合中挑出在线用户的ID列表。
            </summary>        
        </member>
        <member name="E:ESFramework.Server.UserManagement.IPlatformUserManager.UserDisconnected">
            <summary>
            某个用户的最后一台设备从群集系统退出时，触发此事件。参数：userID - serverID
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IPlatformUserManager.UserConnected">
            <summary>
            某个用户的第一台设备登录到群集系统时，触发此事件。参数：userID - serverID
            </summary>
        </member>
        <member name="T:ESFramework.Server.UserManagement.VirtualPlatformUserManager">
            <summary>
            在非ESPlatform环境中，虚拟的平台用户管理器。
            </summary>
        </member>
        <member name="T:ESFramework.Server.UserManagement.IUserManager">
            <summary>
            在支持多端的场景中，将与连接绑定的ID称为LoginID，而客户端用户真正的ID称为ClientID。对于非多端场景，ClientID就是LoginID。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.IUserManager.DontCheckHeartbeat4Websocket">
            <summary>
            不检查WebSocket客户端的心跳。默认值：true。（避免：当web页面切到后台时，浏览器可能会休眠心跳定时器从而导致心跳超时掉线。）
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.IUserManager.LoginDeviceDisplayer">
            <summary>
            在线用户设备显示器。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.IUserManager.UserCount">
            <summary>
            当前在线用户的数量。
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.IsUserOnLine(System.String)">
            <summary>
            目标用户是否在线。
            </summary>       
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.GetUserData(System.String)">
            <summary>
            获取目标在线用户的基础信息。
            </summary>
            <param name="userID">目标用户的ID</param>
            <returns>如果目标用户不在线，则返回null</returns>
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.GetUserAddressByLoginID(System.String)">
            <summary>
            【框架内部使用】根据loginID获取其对应的地址。如果不在线，则返回null。
            </summary>        
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.GetLoginDeviceDataByLoginID(System.String)">
            <summary>
            【框架内部使用】根据loginID获取其对应的LoginDeviceData。如果不在线，则返回null。
            </summary> 
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.SetP2PAddress(System.String,ESFramework.Server.UserManagement.P2PAddress)">
            <summary>
            【框架内部使用】设置loginID对应的P2P地址。
            </summary>       
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.GetAllUserData">
            <summary>
            获取所有在线用户信息。
            </summary>       
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.GetOnlineUserList">
            <summary>
            获取在线用户的ID列表。
            </summary>        
        </member>
        <member name="M:ESFramework.Server.UserManagement.IUserManager.GetAllLoginDevice">
            <summary>
            获取所有登录设备。
            </summary>        
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.ClientDeviceDisconnected">
            <summary>
            客户端设备断开下线时，触发此事件。不要远程预定该事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.ClientDeviceConnected">
            <summary>
            当客户端设备登录成功时，触发此事件。不要远程预定该事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.ClientDeviceBeingPushedOut">
            <summary>
            当从另外一个新连接上收到一个同名LoginID用户登录成功的消息时，触发此事件。
            注意，只有在该事件处理完毕后，才会真正关闭旧的连接并使用新的地址取代旧的地址。可以在该事件的处理函数中，将相关情况通知给旧连接的客户端。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.UserCountChanged">
            <summary>
            当在线用户数发生变化时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.UserDisconnected">
            <summary>
            当某用户的最后一个设备下线时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.UserConnected">
            <summary>
            当某用户的第一个设备登录成功时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.UserTagChanged">
            <summary>
            当某个用户的携带数据被修改时，将触发此事件。参数为 UserID - tag
            </summary>
        </member>
        <member name="E:ESFramework.Server.UserManagement.IUserManager.P2PAddressChanged">
            <summary>
            当某个设备的P2PAddress地址被修改时，将触发此事件。参数为 LoginID - P2PAddress
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.UserData.TimeLogon">
            <summary>
            第一个设备上线的时间。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.UserData.DeviceCount">
            <summary>
            在线设备的数量。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.UserData.DeviceTypeList">
            <summary>
            在线设备列表。
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.UserData.GetDevice(ESFramework.ClientType)">
            <summary>
            获取在线目标设备数据。
            </summary>      
        </member>
        <member name="M:ESFramework.Server.UserManagement.UserData.GetDevices">
            <summary>
            获取所有在线设备数据。
            </summary>      
        </member>
        <member name="M:ESFramework.Server.UserManagement.UserData.GetRandomDevice">
            <summary>
            获取在线目标设备数据中的任意一个。
            </summary>      
        </member>
        <member name="P:ESFramework.Server.UserManagement.UserData.Tag">
            <summary>
            用户的携带数据（应用程序可以使用该属性保存与当前用户相关的其它信息），该Tag会在ACMS和AS之间自动同步。该Tag指向的对象必须可序列化。
            </summary>        
        </member>
        <member name="P:ESFramework.Server.UserManagement.UserData.LocalTag">
            <summary>
            用户的携带数据（应用程序可以使用该属性保存与当前用户相关的其它信息），仅在本地使用。不会在ACMS和AS之间同步。
            </summary>        
        </member>
        <member name="T:ESFramework.Server.UserManagement.LoginDeviceData">
            <summary>
            登陆用户的基础信息。即可用于独立的应用服务器、也可用于ESPlatform体系中。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.LoginDeviceData.AppServerID">
            <summary>
            在ESPlatform群集环境中，目标用户所连接的应用服务器ID。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.LoginDeviceData.Address">
            <summary>
            服务器看到的客户端的地址（通常是经过NAT之后的地址）。
            </summary>       
        </member>
        <member name="P:ESFramework.Server.UserManagement.LoginDeviceData.P2PAddress">
            <summary>
            客户端的私有地址信息
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.LoginDeviceData.TimeLogon">
            <summary>
            上线时间。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.LoginDeviceData.ClientType">
            <summary>
            客户端类型
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.LoginDeviceData.Tag">
            <summary>
            用户的携带数据（应用程序可以使用该属性保存与当前用户相关的其它信息），该Tag会在ACMS和AS之间自动同步。该Tag指向的对象必须可序列化。
            </summary>        
        </member>
        <member name="P:ESFramework.Server.UserManagement.LoginDeviceData.LocalTag">
            <summary>
            用户的携带数据（应用程序可以使用该属性保存与当前用户相关的其它信息），仅在本地使用。不会在ACMS和AS之间同步。
            </summary>        
        </member>
        <member name="T:ESFramework.Server.UserManagement.P2PAddress">
            <summary>
            客户端用于P2P通信的地址信息。
            </summary>
        </member>
        <member name="T:ESFramework.Server.UserManagement.TcpLoginDeviceManager">
            <summary>
            IUserManager接口的默认实现。
            只有当LoginID与TCP连接绑定了，才会进入用户管理器。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.TcpLoginDeviceManager.UserDisplayer">
            <summary>
            用户管理器依赖该属性显示所有在线用户的状态信息。	
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.TcpLoginDeviceManager.HeartbeatTimeoutInSecs">
            <summary>
            心跳超时间隔（秒）。即服务端多久没有收到客户端的心跳消息，则视客户端为超时掉线。默认值为30秒。如果设置小于等于0，则表示不做心跳检查。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.TcpLoginDeviceManager.TcpServerEngine">
            <summary>
            要绑定的服务端引擎。
            </summary>
        </member>
        <member name="P:ESFramework.Server.UserManagement.TcpLoginDeviceManager.ActivateUserAfterSentMessage">
            <summary>
            当给某个用户发送消息后，是否激活其心跳。默认值false。普通应用中，应设为false。该属性主要给ESPlatform的转发服务器TS使用。
            </summary>
        </member>
        <member name="M:ESFramework.Server.UserManagement.UserManager.LogonOtherServer(System.String,System.String)">
            <summary>
            该方法用于Platform，用于接受平台的回调通知。同名用户在同一群集的其它的应用服务器上登陆。将触发SomeOneBeingPushedOut事件。
            </summary>
            <param name="loginID">同名登陆的loginID。</param>
            <param name="newServerID">新登录到哪台服务器。</param>
        </member>
        <member name="F:ESFramework.Extensions.ChatRendering.ChatItemFile.isOffline">
            <summary>
            离线文件
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.ChatItemMedia.#ctor(ESFramework.Extensions.ChatRendering.IRender,ESFramework.Extensions.ChatRendering.IRenderDataProvider,System.Int32,System.String,System.String,System.Boolean,System.Boolean,System.String,System.Boolean)">
            <summary>
            
            </summary>
            <param name="render"></param>
            <param name="provider"></param>
            <param name="renderWidth"></param>
            <param name="msgID"></param>
            <param name="userID"></param>
            <param name="me"></param>
            <param name="drawName"></param>
            <param name="duration"></param>
            <param name="isAudioCommunicate">多媒体类型是语音或视频</param>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.ChatRenderFactory.ParseEmotionRichText(System.String,System.Collections.Generic.Dictionary{System.UInt32,System.UInt32}@)">
            <summary>
            从富文本字符串中解析出表情字典
            </summary>
            <param name="richText">富文本字符串，表情使用5个字符，如[003]，中间的三位数字表示表情的index。富文本示例：“你好啊[005],我们一起玩游戏吧[031],快来。”</param>
            <param name="emotionDic">表情字典。key-表情在字符串中的位置，value-表情图片的index</param>
            <returns>返回的字符串中使用一个空格占位符表示一个表情</returns>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.ChatRenderFactory.ConstructEmotionRichText(System.String,System.Collections.Generic.Dictionary{System.UInt32,System.UInt32})">
            <summary>
            构造内嵌表情的富文本字符串。
            </summary>
            <param name="originText">原始文本，不含表情</param>
            <param name="emotionDic">表情字典。key-表情在字符串中的位置，value-表情图片的index</param>
            <returns>富文本字符串，表情使用5个字符，如“[003]”。</returns>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.ChatRenderHelper.GetBitmapMaxSize(System.Drawing.Size,System.Int32)">
            <summary>
            指定宽高的最大长度，获取图片等比缩放后的尺寸。
            </summary>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.ChatRenderHelper.LimitText(ESFramework.Extensions.ChatRendering.IRender,System.String,System.Int32,System.Int32)">
            <summary>
            将文本裁剪到指定宽度范围内。
            </summary>       
            <returns>裁剪后的文本</returns>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.IChatControl.RenderSize">
            <summary>
            可绘制区域的尺寸。
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatControl.WhenMouseDown">
            <summary>
            参数：leftButton - position
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatControl.WhenMouseUp">
            <summary>
            参数：leftButton - position
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatControl.RenderSurfaceSizeChanged">
            <summary>
            当控件的渲染表面尺寸发生变化时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatControl.RenderSurfaceYScrollChanged">
            <summary>
            当控件的垂直滚动条滚动时，触发此事件。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatControl.InvalidateSurface">
            <summary>
            使控件的整个图面无效并导致重绘控件。
            </summary>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatControl.SetRenderTotalHeight(System.Int32)">
            <summary>
            绘制的总高度发生变化时，通知控件。（控件据此修改垂直滚动条的最大值）
            </summary>        
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatItem.NeedRedraw">
            <summary>
            当前Item需要重绘时触发此事件。
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.IChatItem.MessageID">
            <summary>
            要渲染的聊天消息ID
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.IChatItem.SpeakerID">
            <summary>
            说话人的ID
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.IChatItem.IsMe">
            <summary>
            是否是自己说的话？（自己说的话靠右绘制，对方说的话靠左绘制。）
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatItem.ChangeSurfaceRenderWidth(System.Int32)">
            <summary>
            修改控件绘制表面的宽度（当显示控件的宽度发生变化时，调用此方法通知渲染器）。
            </summary>
            <param name="width"></param>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatItem.Render(ESFramework.Extensions.ChatRendering.ISysRender,System.Int32)">
            <summary>
            从指定位置开始渲染。
            </summary>
            <param name="startY">起始Y坐标</param>       
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatItem.OnMouseMove(System.Int32,System.Drawing.Point)">
            <summary>
            鼠标移动。 pt的Y值已经加上了滚动条的偏移
            </summary>        
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.IChatItem.RenderHeight">
            <summary>
            渲染所使用的高度（根据MaxRenderWidth计算得到，每当ChangeMaxRenderWidth时，需要重新计算该值）。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatItem.MessageMainBodyContains(System.Int32,System.Drawing.Point)">
            <summary>
            pt的Y值已经加上了滚动条的偏移
            </summary>       
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatItem.HeadImageContains(System.Int32,System.Drawing.Point)">
            <summary>
            pt的Y值已经加上了滚动条的偏移
            </summary>       
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatItem.Reset">
            <summary>
            恢复到初始状态。
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.IChatItem.NextItemSpaceLength">
            <summary>
            下一条Item与当前Item之间的间距。
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.BaseChatItem.MainBody">
            <summary>
            消息正文的背景框。对于图片消息即是绘制图片的矩形框，对于文本消息即是绘制文本的矩形框，对于名片消息，即是绘制名片的矩形框。
            坐标参考点：相对于当前消息的绘制起始点。
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.BaseChatItem.MainBodyMaxWidth">
            <summary>
            绘制消息正文的最大宽度。（surfaceRenderWidth - 左右留白边距 - 两个头像 - 两个头像与正文之间的间隙）
            需要根据surfaceRenderWidth计算得出，当绘制表面Size改变时，该值也会改变。
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.ExceptionOccured">
            <summary>
            当操作抛出异常时，触发此事件。
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.CardClicked">
            <summary>
            当名片被点击时，触发此事件。参数：MessageID - CardUserID
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.SnapClicked">
            <summary>
            当悄悄话被点击时，触发此事件。参数：MessageID 
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.ImageClicked">
            <summary>
            当悄悄话被点击时，触发此事件。参数：MessageID - Image
            </summary>       
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.AudioMessageClicked">
            <summary>
            当某个语音消息被单击时，触发此事件。 参数：MessageID - AudioMessage
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.HeadImageClicked">
            <summary>
            当某用户的头像被点击时，触发此事件。参数：UserID
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.CommunicateClicked">
            <summary>
            当多媒体消息被点击时，触发此事件。参数：UserID
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.ContextMenuCalled">
            <summary>
            当需要显示聊天消息的右键菜单时，触发此事件。参数：Position - ChatMessageType - MessageID 
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.HeadImageContextMenuCalled">
            <summary>
            当需要显示头像的右键菜单时，触发此事件。参数：Position - UserID 
            </summary>
        </member>
        <member name="E:ESFramework.Extensions.ChatRendering.IChatRender.ChatItemClicked">
            <summary>
            当ChatItem被点击时，触发此事件。参数：ChatMessageType - MessageID 
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatRender.RegisterFileController(ESPlus.Application.FileTransfering.IFileController4Render,System.Func{ESPlus.FileTransceiver.ITransferingProject,System.Boolean},ESFramework.Extensions.ChatRendering.IFileOperator)">
            <summary>
            注册文件传送控制器。
            </summary>
            <param name="fileController">文件传送控制器</param>
            <param name="_fileOperator">文件操作回调</param>
            <param name="filter">用于过滤不属于当前聊天窗口的文件传送项目</param>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatRender.ChangeChatItemTextColor(System.String,System.Nullable{System.Drawing.Color})">
            <summary>
            修改目标用户的文本消息的字体颜色。
            </summary>       
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatRender.StartPlayAudioMessageAnimation(System.String)">
            <summary>
            开始语音消息播放的动画。
            </summary>       
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatRender.StopPlayAudioMessageAnimation(System.String)">
            <summary>
            停止语音消息播放的动画。
            如果传入null，表示停止当前ChatRender管理的所有语音消息的动画播放。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatRender.IsPlayingAudioMessageAnimation(System.String)">
            <summary>
            目标语音消息的动画是否正在播放？
            </summary>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatRender.GetSelectedText">
            <summary>
            获取当前ChatItemText中选中的文本。（提供给复制操作）
            </summary>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IChatRender.ClearSelText">
            <summary>
            清除当前ChatItemText中选中的文本
            </summary>      
        </member>
        <member name="T:ESFramework.Extensions.ChatRendering.ReferencedChatMessage">
            <summary>
            被引用的聊天消息
            </summary>
        </member>
        <member name="T:ESFramework.Extensions.ChatRendering.ISysRender">
            <summary>
            操作系统底层渲染接口。需要在目标平台上实现该接口。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.ISysRender.RenderTextEmotion(System.Drawing.Color,System.Drawing.Color,System.Drawing.Point,System.String,System.Int32,System.Drawing.Size,System.Int32,System.String,System.Collections.Generic.Dictionary{System.UInt32,System.UInt32})">
            <summary>
            绘制表情和文字。
            </summary>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.ISysRender.RenderTextEmotionSelected(System.Drawing.Color,System.Drawing.Point,System.String,System.Int32,System.Drawing.Size,System.Int32,System.String,System.Collections.Generic.Dictionary{System.UInt32,System.UInt32},System.Drawing.Point,System.Drawing.Point,System.Drawing.Color)">
            <summary>
            根据鼠标拖动的范围，计算出选中的文字，并绘制选中区域的背景。
            </summary>        
        </member>
        <member name="T:ESFramework.Extensions.ChatRendering.IRenderDataProvider">
            <summary>
            实现该接口，以提供必要的信息给聊天消息渲染器。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetSpeakerDisplayName(System.String)">
            <summary>
            获取发言人要显示的名称。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetUserName(System.String)">
            <summary>
            获取用户的名称。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetUserHeadImage(System.String)">
            <summary>
            获取发言人要显示的头像。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetImageOfFileType(System.String)">
            <summary>
            根据文件的扩展名获取对应文件类型的图标。
            </summary>       
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetImageOfVideoCall">
            <summary>
            获取视频通话图标。
            </summary>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetImageOfAudioCall">
            <summary>
            获取语音通话图标。
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetFilePathToSave(System.String)">
            <summary>
            当接收文件时，文件的存储路径。
            </summary>
            <param name="fileName">要接收的文件名</param>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.IRenderDataProvider.GetEmotions">
            <summary>
            获取表情字典。key：表情编号，value：表情图片。
            </summary>        
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.Platform.WinformRender.ForMatTextEmotion(System.String,System.Collections.Generic.Dictionary{System.UInt32,System.UInt32})">
            <summary>
            将表情的空格替换为字符 "一"
            </summary>  
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.Platform.WinformRender.DrawEmotion(System.String,System.UInt32,System.Drawing.Point,System.Drawing.Font,System.Drawing.Size,System.Int32)">
            <summary>
            绘制表情
            </summary> 
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.Platform.WinformRender.GetPoint4LastChar(System.String,System.Drawing.Font,System.Drawing.Rectangle)">
            <summary>
            求出最后一个字符的矩形区域
            </summary> 
        </member>
        <member name="T:ESFramework.Extensions.ChatRendering.Platform.SelectTextInfo">
            <summary>
            选择的文本信息
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.Platform.SelectTextInfo.StartIndex">
            <summary>
            选择的文本 起始位置
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.Platform.SelectTextInfo.Count">
            <summary>
            选择的文本 个数
            </summary>
        </member>
        <member name="P:ESFramework.Extensions.ChatRendering.Platform.SelectTextInfo.RectangleFs">
            <summary>
            选择的文本 所占据的矩形集合
            </summary>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.Platform.WpfRender.ComputeStringRenderSize(System.String,System.String,System.Int32,System.Int32)">
            <summary>
            计算该字符串绘制后的尺寸
            </summary>
            <param name="str"></param>
            <param name="fontSize"></param>
            <param name="maxWidth"></param>
            <returns></returns>
        </member>
        <member name="M:ESFramework.Extensions.ChatRendering.Platform.WpfRender.GetContentStr4Draw(System.String,System.Int32,System.Windows.Size,System.String,System.Collections.Generic.Dictionary{System.UInt32,System.UInt32},System.Int32)">
            <summary>
            从ChatBoxContent解析出 ChatBoxContent 获取要绘制的字符串（用该空格字符去占用表情的位置）
            </summary>
            <param name="fontSize"></param>
            <param name="emotionSize"></param>
            <param name="contentStr">字符串</param>
            <param name="imageDic">表情字典</param>
            <returns></returns>      
        </member>
        <member name="T:ESFramework.MSideHelper">
            <summary>
            允许同一个用户多设备同时登录的帮助类。
            </summary>
        </member>
        <member name="F:ESFramework.MSideHelper.LoginIDPrefixMapping">
            <summary>
            在多设备的情况下，不同类型的设备登录时，在登录的LoginID前加上对应的前缀得到LoginID，以表明自己的设备类型。
            如果不加任何前缀，则表示自己是DotNET。
            </summary>
        </member>
        <member name="M:ESFramework.MSideHelper.ConstructLoginID(System.String,ESFramework.ClientType)">
            <summary>
            根据真正的LoginID构造LoginID。
            </summary>
            <param name="userID">真正的userID</param>
            <param name="clientType">设备类型</param>
            <returns>LoginID</returns>
        </member>
        <member name="M:ESFramework.MSideHelper.ParseLoginID(System.String,System.Nullable{ESFramework.ClientType}@)">
            <summary>
            解析带前缀的LoginID，获得真正的LoginID和设备类型。
            </summary>
            <param name="loginID">登录用的LoginID，即带前缀的LoginID</param>
            <param name="clientType">设备类型</param>
            <returns>真正的LoginID</returns>
        </member>
        <member name="M:ESFramework.MSideHelper.GetLoginIDList(System.String)">
            <summary>
            根据真正的LoginID构造不同类型设备对应的LoginID的列表。
            </summary>
            <param name="loginID">真正的LoginID</param>
            <returns>LoginID列表</returns>
        </member>
        <member name="M:ESFramework.MSideHelper.GetUserID(System.String)">
            <summary>
            根据带前缀的LoginID，获取真正的LoginID。
            </summary>
            <param name="loginID">带前缀的LoginID</param>
            <returns>真正的LoginID</returns>
        </member>
        <member name="T:ESPlus.Application.FileTransfering.Server.FileMessageProcesser">
            <summary>
            FileMessageProcesser 使服务端能够提供下载上传的服务。
            zhuweisky 2010.08.13
            </summary>
        </member>
        <member name="T:ESPlus.Application.FileTransfering.Server.IFileController">
            <summary>
            服务端的ESPlus.Application.FileTransfering.Server.FileMessageProcesser实现了该接口。    
            </summary>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.Server.IFileController.BeginSendFile(System.String,ESFramework.ClientType,System.String,System.String,System.String@)">
            <summary>
            发送方准备发送文件（夹）。目标用户必须在线。如果对方同意接收，则后台会自动发送文件（夹）；如果对方拒绝接收，则会取消发送。（通过FileAnswerReceived事件，可以得知对方是否同意接收。）
            </summary>
            <param name="accepterID">接收文件（夹）的用户ID</param>
            <param name="accepterType">接收文件（夹）的用户的设备类型</param>
            <param name="fileOrDirPath">被发送文件（夹）的路径</param>    
            <param name="comment">其它附加备注。如果是在类似FTP的服务中，该参数可以是保存文件（夹）的路径</param>       
            <param name="projectID">返回文件传送项目的编号</param>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.BeginSendFileContract.IsFolder">
            <summary>
            是否传送的为文件夹。false表示传送的为文件，true表示传送的为文件夹。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.BeginSendFileContract.OriginPath">
            <summary>
            发送方发送的文件（夹）的全路径。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.BeginSendFileContract.TotalSize">
            <summary>
            要传送的文件（夹）的总大小
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.BeginSendFileContract.LastUpdateTime">
            <summary>
            被发送的文件(夹)最后一次更新时间。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.BeginSendFileContract.Comment">
            <summary>
            Comment 用于存储与本次文件发送相关的额外附加信息。比如，在类似ftp的上传文件（夹）的服务中，Comment的内容可以是服务器保存上传文件（夹）的路径。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.CancelFileContract.InnerError">
            <summary>
            是否因为内部错误而导致文件传送中断。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.CancelFileContract.Cause">
            <summary>
            取消的具体原因。
            </summary>
        </member>
        <member name="T:ESPlus.Application.FileTransfering.RejectOrAcceptFileContract">
            <summary>
            同意/拒绝接收文件。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.RejectOrAcceptFileContract.RejectCause">
            <summary>
            当agree为false，该字段表示拒绝的原因。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.RejectOrAcceptFileContract.ReceivedCount">
            <summary>
            如果值非0，则表示续传，指示已经传递了多少字节。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.RejectOrAcceptFileContract.DisrupttedFileRelativePath">
            <summary>
            仅用于文件夹续传，表示续传的文件的相对路径
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.RejectOrAcceptFileContract.DisrupttedFileSize">
            <summary>
            该属性仅用于文件夹传送。被中断传送的文件的大小。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.RejectOrAcceptFileContract.DisrupttedFileReceivedCount">
            <summary>
            该属性仅用于文件夹传送。被中断传送的文件已接收的字节数
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.RejectOrAcceptFileContract.AnswerClientType">
            <summary>
            给出同意/拒绝应答的接收方的设备类型
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.BaseFileController.CheckZeroSpeedSpanInSecs">
            <summary>
            检测0速度的时间间隔，单位：秒。默认值20。
            </summary>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.BaseFileController.Dispose">
            <summary>
            释放零速度检测线程。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.BaseFileController.FileReceiverManager">
            <summary>
            必须与PromptMessageOutter使用同一个IFileReceiverManager引用。
            </summary>
        </member>
        <member name="T:ESPlus.Application.FileTransfering.CbFileRequestReceived">
            <summary>
            回调委托。
            </summary>
            <param name="projectID">文件传送项目的编号</param>
            <param name="senderID">文件（夹）发送者的ID</param>
            <param name="senderType">发送者的设备类型</param>
            <param name="fileName">文件（夹）名称</param>
            <param name="totalSize">文件（夹）大小</param>
            <param name="comment">备注</param>
        </member>
        <member name="T:ESPlus.Application.FileTransfering.IBaseFileController">
            <summary>
            用于控制文件（夹）发送及文件传送状态的查看。即可用于客户端也可用户服务端。    
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.IBaseFileController.TTL4ResumedFileItem">
            <summary>
            当一个续传项超过多长时间没被使用，则将其移除，同时删除对应的临时文件（夹）。单位：秒。默认值：300。
            如果值小于等于0，表示不使用续传功能。
            </summary>
        </member>
        <member name="E:ESPlus.Application.FileTransfering.IBaseFileController.FileResponseReceived">
            <summary>
            当文件接收方回复了同意/拒绝接收文件（夹）时，在发送方触发此事件。参数为 TransmittingProject - bool（同意？）。可以通过参数TransmittingProject的AccepterID属性得知接收方的UserID。
            通常，客户端预定该事件，只需要告知文件发送者，而不需要再做任何额外处理。该事件将在后台线程中触发，如果处理该事件时需要刷新UI，则需要转发到UI线程。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.IBaseFileController.FileSendingEvents">
            <summary>
            该事件接口暴露了所有正在发送文件（夹）的实时状态。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.IBaseFileController.FileReceivingEvents">
            <summary>
            该事件接口暴露了所有正在接收的文件（夹）的实时状态。
            </summary>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.BeginSendFile(System.String,System.String,System.String,System.String@)">
            <summary>
            发送方准备发送文件（夹）。目标用户必须在线。如果对方同意接收，则后台会自动发送文件（夹）；如果对方拒绝接收，则会取消发送。（通过FileAnswerReceived事件，可以得知对方是否同意接收。）
            </summary>
            <param name="accepterID">接收文件（夹）的用户ID</param>
            <param name="fileOrDirPath">被发送文件（夹）的路径</param>    
            <param name="comment">其它附加备注。如果是在类似FTP的服务中，该参数可以是保存文件（夹）的路径</param>       
            <param name="projectID">返回文件传送项目的编号</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.BeginSendFile(System.String,System.String,System.String,ESPlus.FileTransceiver.SendingFileParas,System.String@)">
            <summary>
            发送方准备发送文件（夹）。目标用户必须在线。如果对方同意接收，则后台会自动发送文件；如果对方拒绝接收，则会取消发送。（通过FileResponseReceived事件，可以得知对方是否同意接收。）
            </summary>
            <param name="accepterID">接收文件（夹）的用户ID</param>
            <param name="fileOrDirPath">被发送文件（夹）的路径</param>       
            <param name="comment">其它附加备注。如果是在类似FTP的服务中，该参数可以是保存文件（夹）的路径</param>
            <param name="paras">发送参数设定。传入null，表示采用IFileSenderManager的默认设置。</param>
            <param name="projectID">返回文件传送项目的编号</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.BeginSendFile(System.String,System.IO.Stream,System.String,System.UInt64,System.String,ESPlus.FileTransceiver.SendingFileParas,System.String@)">
            <summary>
            发送方准备发送流。目标用户必须在线。如果对方同意接收，则后台会自动发送；如果对方拒绝接收，则会取消发送。（通过FileResponseReceived事件，可以得知对方是否同意接收。）
            </summary>
            <param name="accepterID">接收流的用户ID</param>
            <param name="stream">被发送的流。请特别注意，调用该方法前请保证流已经被打开；另外，发送中断或完成，ESFramework并不会关闭该流。</param> 
            <param name="projectName">项目的名称</param>
            <param name="size">要发送的字节数</param>
            <param name="comment">其它附加备注。</param>
            <param name="paras">发送参数设定。传入null，表示采用IFileSenderManager的默认设置。</param>
            <param name="projectID">返回文件传送项目的编号</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.BeginReceiveFile(System.String,System.IO.Stream)">
            <summary>
            接收方如果同意接收文件（夹）或流，则调用该方法，该方法会将接收的数据写入到目标流（saveStream）中。
            </summary>
            <param name="projectID">文件传送项目的编号</param>
            <param name="saveStream">存储文件的流。请特别注意，调用该方法前请保证流已经被打开；另外，接收中断或完成，ESFramework并不会关闭该流。</param>        
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.BeginReceiveFile(System.String,System.String,System.Boolean)">
            <summary>
            接收方如果同意接收文件（夹）或流，则调用该方法。
            </summary>
            <param name="projectID">文件传送项目的编号</param>
            <param name="savePath">存储文件（夹）的路径。请特别注意，如果已经存在同名的文件（夹），将覆盖之。</param>
            <param name="allowResume">如果满足续传条件，是否启用续传。</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.RejectFile(System.String,System.String)">
            <summary>
            接收方如果拒绝接收文件（夹）或流，则调用该方法。
            </summary>
            <param name="projectID">文件传送项目的编号</param>
            <param name="cause">拒绝接收的原因</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.GetTransferingAbout(System.String)">
            <summary>
            获取与目标用户相关的所有文件传送项目的projectID的列表（包括未被接收方回复的传送项目）。
            </summary>
            <param name="destUserID">目标用户ID。如果为null，则表示获取所有正在传送项目的projectID。</param>
            <returns>projectID的列表</returns>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.CancelTransfering(System.String,System.String)">
            <summary>
            主动取消正在发送或接收的文件（夹）（包括未被接收方回复的传送项目），并通知对方。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.CancelTransferingAbout(System.String)">
            <summary>
            取消与目标用户相关的正在传送项目（包括未被接收方回复的传送项目）。
            </summary>
            <param name="destUserID">目标用户ID。如果为null，则表示取消所有正在传送项目。</param> 
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.CancelAllTransfering">
            <summary>
            取消所有正在传送项目（包括未被接收方回复的传送项目）。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.GetTransferingProject(System.String)">
            <summary>
            获取正在发送或接收中的文件传送项目（包括未被接收方回复的传送项目）。如果不存在目标项目，则返回null。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IBaseFileController.GetTransferingProgress(System.String)">
            <summary>
            获取正在发送或接收中的文件传送项目的传送进度。如果不存在目标项目或传送尚未开始，则返回null。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.IFileController4Render.FileTransferingEvents">
            <summary>
            该事件接口暴露了所有正在传送文件（夹）的实时状态。
            </summary>
        </member>
        <member name="E:ESPlus.Application.FileTransfering.IFileController4Render.FileRequestSent">
            <summary>
            当发送了文件传送请求时，触发此事件。
            </summary>
        </member>
        <member name="E:ESPlus.Application.FileTransfering.IFileController4Render.FileRequestReceived">
            <summary>
            当文件接收方收到了来自发送方发送文件（夹）的请求时，触发此事件。该事件将在后台线程中触发，如果处理该事件时需要刷新UI，则需要转发到UI线程。
            当接收方确定要接收或拒绝文件时，请调用BeginReceiveFile方法或RejectFile方法。
            </summary>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IFileController4Render.RejectFile(System.String)">
            <summary>
            接收方如果拒绝接收文件（夹）或流，则调用该方法。
            </summary>
            <param name="projectID">文件传送项目的编号</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IFileController4Render.CancelTransfering(System.String)">
            <summary>
            主动取消正在发送或接收的文件（夹）（包括未被接收方回复的传送项目），并通知对方。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IFileController4Render.BeginReceiveFile(System.String,System.String)">
            <summary>
            接收方如果同意接收文件（夹）或流，则调用该方法。
            </summary>
            <param name="projectID">文件传送项目的编号</param>
            <param name="savePath">存储文件（夹）的路径。请特别注意，如果已经存在同名的文件（夹），将覆盖之。</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.IFileController4Render.GetProject(System.String)">
            <summary>
            获取传送的文件项目。
            </summary>        
        </member>
        <member name="T:ESPlus.Application.FileTransfering.FileMessageTypeRoom">
            <summary>
            所有与文件传送相关的消息类型的空间。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.BeginSendFile">
            <summary>
            通知对方准备发送文件。对应协议为BeginSendFileContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.RejectOrAcceptFile">
            <summary>
            RejectOrAcceptFile 同意/拒绝接收文件。对BeginSendFile的回复，消息体为RejectOrAcceptFileContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.FilePackageData">
            <summary>
            包含了文件数据的包。消息协议为ESPlus.FileTransceiver.FilePackageContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.CancelFileSending">
            <summary>
            取消文件的发送。对应协议为CancelFileContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.CancelFileReceiving">
            <summary>
            取消文件的接收。对应协议为CancelFileContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.SingleFileRevFinishedNotify">
            <summary>
            在接收文件夹的情况下，当文件夹中的某个文件接收完成时，必须通知发送方。如此发送方才会启动文件夹中下一个文件的发送。对应协议为SingleFileNotifyContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.ContinueTransFile">
            <summary>
            续传文件。
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.FileMessageTypeRoom.AnswerOnOtherDeviceNotify">
            <summary>
            服务端通知客户端，对于是否接收文件的请求，已经在其它设备作出应答。
            </summary>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.FileTransferingHelper.GetDescription4DisrupttedType(ESPlus.FileTransceiver.FileTransDisrupttedType,System.Boolean)">
            <summary>
            获取FileTransDisrupttedType枚举值对应的中文描述。
            </summary>  
        </member>
        <member name="P:ESPlus.Application.FileTransfering.Passive.FileOutter.AutoReUploadFile">
            <summary>
            当上传文件到服务器因为连接断开而中断时，等网络恢复后是否自动重新上传？
            </summary>
        </member>
        <member name="T:ESPlus.Application.FileTransfering.Passive.IFileOutter">
            <summary>
            用于文件传送及其相关控制消息。    
            </summary>
        </member>
        <member name="P:ESPlus.Application.FileTransfering.Passive.IFileOutter.AutoReUploadFile">
            <summary>
            当上传文件到服务器因为连接断开而中断时，等网络恢复后是否自动重新上传？ 
            默认值：true。
            </summary>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.Passive.IFileOutter.BeginReceiveFileFromServer(System.String,System.String,System.IO.Stream)">
            <summary>
            【群集】接收方如果同意接收来自群集中某个服务端的文件（夹）或流，则调用该方法，该方法会将接收的数据写入到目标流（saveStream）中。
            </summary>
            <param name="serverToken">根据此Token可以定位到群集中的AS</param>
            <param name="projectID">文件传送项目的编号</param>
            <param name="saveStream">存储文件的流。请特别注意，调用该方法前请保证流已经被打开；另外，接收中断或完成，ESFramework并不会关闭该流。</param>        
        </member>
        <member name="M:ESPlus.Application.FileTransfering.Passive.IFileOutter.BeginReceiveFileFromServer(System.String,System.String,System.String)">
            <summary>
            【群集】接收方如果同意接收来自群集中某个服务端的文件（夹）或流，则调用该方法。
            </summary>
            <param name="serverToken">根据此Token可以定位到群集中的AS</param>
            <param name="projectID">文件传送项目的编号</param>
            <param name="savePath">存储文件（夹）的路径。请特别注意，如果已经存在同名的文件（夹），将覆盖之。</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.Passive.IFileOutter.RejectFileFromServer(System.String,System.String)">
            <summary>
            【群集】接收方如果拒绝接收来自群集中某个服务端的文件（夹）或流，则调用该方法。
            </summary>
            <param name="serverToken">根据此Token可以定位到群集中的AS</param>
            <param name="projectID">文件传送项目的编号</param>
        </member>
        <member name="M:ESPlus.Application.FileTransfering.Passive.IFileOutter.CancelReceivingFromServer(System.String,System.String)">
            <summary>
            【群集】当取消接收正在传送的来自群集中某个服务端的文件（夹）或流，则调用该方法。
            </summary>
            <param name="serverToken">根据此Token可以定位到群集中的AS</param>
            <param name="projectID">文件传送项目的编号</param>
        </member>
        <member name="T:ESPlus.Application.Basic.BasicMessageTypeRoom">
            <summary>
            所有基本消息的类型空间。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.GetMyIPE">
            <summary>
            获取自己的IP地址信息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.PingByServer">
            <summary>
            ping 服务器或其他在线用户(通过服务器中转)。协议为PingContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.PingAck">
            <summary>
            对ping的回复。协议为PingContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.HeartBeat">
            <summary>
            心跳消息
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.BeingPushedOutNotify">
            <summary>
            BeingPushedOutNotify 当某在线用户被同名用户挤掉时，将给被挤掉的用户发送该通知。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.KickOut">
            <summary>
            KickOut 请求服务器将某个在线用户踢出（发出BeingKickedOutNotify通知，断开连接）
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.BeingKickedOutNotify">
            <summary>
            BeingKickedOutNotify 当某在线用户被踢出时（可能是由别的用户请求，也可能是服务端主动踢出BasicController.KickOut()），将给被踢出的用户发送该通知。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.GetAllOnlineUsers">
            <summary>
            获取所有在线用户列表。回复的消息主体为ResUsersContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.QueryOnline">
            <summary>
            查询用户是否在线。请求协议为QueryOnlineContract，回复协议为ResOnlineContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.Logon">
            <summary>
            登陆。请求协议为ReqLogonContract，回复协议为ResLogonContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.GetUserIPE">
            <summary>
            获取用户的IP地址信息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.QueryOnlines">
            <summary>
            查询用户是否在线。请求协议为QueryOnlineContract，回复协议为ResOnlineContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.BasicMessageTypeRoom.PingByP2PChannel">
            <summary>
            其他在线用户。协议为PingContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.ReqLogonContract.SystemToken">
            <summary>
            系统标志。用于验证客户端是否与服务端属于同一系统。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Basic.UserIpeResContract">
            <summary>
            UserIpeResContract 返回用户的IPE。
            </summary>
        </member>
        <member name="F:ESPlus.Application.Basic.LogonResult.Succeed">
            <summary>
            登录成功
            </summary>
        </member>
        <member name="F:ESPlus.Application.Basic.LogonResult.Failed">
            <summary>
            登录失败
            </summary>
        </member>
        <member name="F:ESPlus.Application.Basic.LogonResult.HadLoggedOn">
            <summary>
            已在其它地方登陆
            </summary>
        </member>
        <member name="F:ESPlus.Application.Basic.LogonResult.VersionMismatched">
            <summary>
            客户端与服务端的框架不匹配(比如版本不一致或授权帐号不一致)。
            </summary>
        </member>
        <member name="F:ESPlus.Application.Basic.LogonResult.ClientTypeMismatched">
            <summary>
            消息头中的客户端类型与UserID的前缀不一致。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Basic.LogonResponse">
            <summary>
            登录回复。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.LogonResponse.FailureCause">
            <summary>
            当LogonResult为Failed时，指明失败的原因。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Basic.Passive.BasicPassiveProcesser">
            <summary>
            客户端用于处理所有基本消息。。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.Passive.BasicPassiveProcesser.MessageTransceiver">
            <summary>
            用于发送异步消息处理的结果。如果AsynMessageQueueEnabled为false，则该属性不需要设置。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Basic.Passive.HeartBeater">
            <summary>
            HeartBeater 用于定时向服务器发送Check "心跳" 消息。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Basic.Passive.IBasicOutter">
            <summary>
            用于客户端向服务器发送Basic信息，并发布与自己或好友状态相关的事件。   
            </summary>
        </member>
        <member name="E:ESPlus.Application.Basic.Passive.IBasicOutter.BeingPushedOut">
            <summary>
             当自己被同名用户挤掉线时，触发此事件。此时，客户端引擎已被Dispose。
            </summary>
        </member>
        <member name="E:ESPlus.Application.Basic.Passive.IBasicOutter.BeingKickedOut">
            <summary>
             当自己被服务端踢出掉线时，触发此事件。此时，客户端引擎已被Dispose。
            </summary>
        </member>
        <member name="E:ESPlus.Application.Basic.Passive.IBasicOutter.MyDeviceOnline">
            <summary>
            当我的其它设备上线时，触发此事件。
            </summary>
        </member>
        <member name="E:ESPlus.Application.Basic.Passive.IBasicOutter.MyDeviceOffline">
            <summary>
            当我的其它设备下线时，触发此事件。
            </summary>
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.GetMyOnlineDevice">
            <summary>
            获取自己的在线设备。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.GetMyIPE">
            <summary>
            获取自己的IPE。(通常是经过NAT之后的IPE)
            </summary>       
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.GetUserIPE(System.String)">
            <summary>
            获取某个在线用户的IPE。如果用户不在线，则返回null。【适用于ESPlatform平台】
            </summary>
            <returns>通常是经过NAT之后的IPE</returns>
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.GetAllOnlineUsers">
            <summary>
            获取当前AS上的所有在线的用户列表。【该方法仅仅用于demo和测试】
            </summary>      
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.IsUserOnline(System.String)">
            <summary>
            查询用户是否在线。【适用于ESPlatform平台】
            </summary>       
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.IsUserOnline(System.Collections.Generic.List{System.String})">
            <summary>
            查询用户是否在线。【适用于ESPlatform平台】
            </summary>       
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.Ping">
            <summary>
            ping服务器。在应用层模拟ping，比普通的ICMP的ping大一些（如8-10ms）。
            </summary>
            <returns>ping耗时，单位毫秒</returns>
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.KickOut(System.String)">
            <summary>
            命令服务端将目标用户踢出。如果目标用户不在当前AS上，则直接返回。
            </summary>
            <param name="targetUserID">要踢出的用户ID</param>
        </member>
        <member name="M:ESPlus.Application.Basic.Passive.IBasicOutter.SendHeartBeatMessage">
            <summary>
            向服务器发送心跳消息。被框架ESPlus.Application.Basic.Passive.HeartBeater使用。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Basic.Server.BasicMessageProcesser">
            <summary>
            BasicMessageProcesser 提供以下特性：
            (1)登录验证（结合RelogonMode）、登出（关闭连接）、心跳（自动回复）
            (2)当某用户超时，先向其发送TimeoutNotify，然后关闭对应的连接。
            (3)当某用户被挤掉线时，先向其发送BeingPushedOutNotify，然后关闭对应的连接。
            (4)当新的同名连接被忽略时，关闭新连接。
            (5)用户上下线时，通知好友。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.Server.BasicMessageProcesser.UserManager">
            <summary>
            本地用户管理器
            </summary>
        </member>
        <member name="P:ESPlus.Application.Basic.Server.BasicMessageProcesser.P2PEnabled">
            <summary>
            客户端是否开启P2P。即使框架授权了P2P功能，也可以通过该属性关闭P2P。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Basic.Server.IBasicController">
            <summary>
            直接在从服务端发出相关控制指令（如踢人等）。
            </summary>
        </member>
        <member name="M:ESPlus.Application.Basic.Server.IBasicController.KickOut(System.String)">
            <summary>
            将目标用户从当前AS中踢出，并关闭对应的连接。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.Basic.Server.IBasicHandler.VerifyUser(ESFramework.ClientType,System.String,System.String,System.String,System.String@)">
            <summary>
            客户端登陆验证。
            </summary>      
            <param name="clientType">客户端设备类型</param>
            <param name="userID">登陆用户账号</param>
            <param name="systemToken">系统标志。用于验证客户端是否与服务端属于同一系统。</param>
            <param name="password">登陆密码</param>
            <param name="failureCause">如果登录失败，该out参数指明失败的原因</param>
            <returns>如果密码和系统标志都正确则返回true；否则返回false。</returns>
        </member>
        <member name="M:ESPlus.Application.Basic.Server.IBasicHandler.HandleQueryBeforeLogin(ESFramework.AgileIPE,System.Int32,System.String)">
            <summary>
            该回调用于处理客户端通过IRapidPassiveEngine的QueryBeforeLogin方法提交的请求。
            </summary>
            <param name="clientAddr">客户端的IP地址</param>
            <param name="queryType">请求的类型</param>
            <param name="query">请求内容</param>
            <returns>处理结果</returns>
        </member>
        <member name="T:ESPlus.Application.Basic.Server.EmptyBasicHandler">
            <summary>
            null object 模式的IBasicHandler实现。
            VerifyUser方法始终返回true。
            </summary>
        </member>
        <member name="T:ESPlus.Application.BlobFragmentContract">
            <summary>
            大数据块的某个片段。
            </summary>
        </member>
        <member name="P:ESPlus.Application.BlobFragmentContract.BlobID">
            <summary>
            大数据块唯一编号。（从1开始计数，逐个递增。对于那些只有一个Fragment的Blob，可以将BlobID设置为-1，以减少编号的使用）。
            </summary>
        </member>
        <member name="P:ESPlus.Application.BlobFragmentContract.FragmentIndex">
            <summary>
            大数据块中的某个片段的索引。从0开始计数。
            </summary>
        </member>
        <member name="P:ESPlus.Application.BlobFragmentContract.Fragment">
            <summary>
            片段内容。
            </summary>
        </member>
        <member name="P:ESPlus.Application.BlobFragmentContract.IsLast">
            <summary>
            是否为最后一个片段。
            </summary>
        </member>
        <member name="T:ESPlus.Application.BlobReceiver">
            <summary>
            用于接收Blob的片段，并将其拼接为一个完整的Blob。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Blob.BlobID">
            <summary>
            大数据块唯一编号。从1开始逐个递增。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Blob.SourceID">
            <summary>
            信息的发送者。可以为UserID或者NetServer.SystemUserID。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Blob.DestID">
            <summary>
            信息的接收者。可以为UserID或者NetServer.SystemUserID或GroupID（广播消息）。
            </summary>
        </member>
        <member name="T:ESPlus.Application.ResultHandler">
            <summary>
            发送消息（异步）任务结束后的回调处理器。
            </summary>    
            <param name="succeed">是否正常完成？（例如：是否收到了ACK回复？是否正常发送？）</param>
            <param name="tag">状态数据</param>
        </member>
        <member name="T:ESPlus.Application.CallbackHandler">
            <summary>
            用于异步回复的回调处理器。
            </summary>
            <param name="ee">如果为TimeoutException，表示超时没有回复；如果为HandingException，表示处理方在处理时抛出异常。只有为null时，response参数才有效。</param>
            <param name="response">回复消息</param>
            <param name="tag">状态数据</param>
        </member>
        <member name="T:ESPlus.Application.Contacts.ContactsMessageTypeRoom">
            <summary>
            与联系人操作相关的所有消息类型定义。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.ContactsMessageTypeRoom.ContactsOfflineNotify">
            <summary>
            通知其联系人某成员的某设备掉线（S->C）。对应协议为UserContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.ContactsMessageTypeRoom.ContactsConnectedNotify">
            <summary>
             通知其联系人某成员的某设备上线（S->C）。对应协议为UserContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.ContactsMessageTypeRoom.GetContracts">
            <summary>
            获取联系人列表。请求协议为ReqFriendsContract，回复的消息主体为ResFriendsContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.BroadcastContract.InformationType">
            <summary>
            广播信息的类型。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Contacts.Groupmates">
            <summary>
            某个组所有的成员。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.UserContract.AllClientType">
            <summary>
            如果是掉线通知，该字段表示是否所有设备都掉线了？
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.ReqContactsContract.JustOnline">
            <summary>
            如果为true，表示只请求在线的好友列表；否则，请求所有好友列表。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Contacts.Passive.ContactsOutter">
            <summary>
            IGroupOutter 的实现。
            (1)内置组成员及其状态缓存。
            (2)尽可能使用P2P通道发送广播信息。
            (3)在从服务器获取组成员时，尝试与在线的组成员创建P2P连接。
            </summary>
        </member>
        <member name="T:ESPlus.Application.Contacts.Passive.IContactsOutter">
            <summary>
            用于客户端发送与联系人操作相关的信息和广播。    
            </summary>
        </member>
        <member name="E:ESPlus.Application.Contacts.Passive.IContactsOutter.ContactsDeviceConnected">
            <summary>
            当联系人的某设备上线时，触发该事件。参数：UserID
            </summary>
        </member>
        <member name="E:ESPlus.Application.Contacts.Passive.IContactsOutter.ContactsDeviceDisconnected">
            <summary>
            当联系人的某设备下线时，触发该事件。参数：UserID
            </summary>
        </member>
        <member name="E:ESPlus.Application.Contacts.Passive.IContactsOutter.ContactsOffline">
            <summary>
            当联系人的所有设备都下线时，触发该事件。参数：UserID
            </summary>
        </member>
        <member name="E:ESPlus.Application.Contacts.Passive.IContactsOutter.BroadcastReceived">
            <summary>
            当接收到某个组内的广播消息（包括大数据块信息）时，触发此事件。参数：broadcasterID - broadcasterClientType - groupID - broadcastType - broadcastContent - tag。
            如果broadcasterID为null，表示是服务端发送的广播。
            </summary>
        </member>
        <member name="M:ESPlus.Application.Contacts.Passive.IContactsOutter.GetAllOnlineContacts">
            <summary>
            获取所有在线的联系人。
            </summary>      
        </member>
        <member name="M:ESPlus.Application.Contacts.Passive.IContactsOutter.GetContacts">
            <summary>
            获取联系人列表。
            </summary>      
        </member>
        <member name="M:ESPlus.Application.Contacts.Passive.IContactsOutter.GetGroupMembers(System.String)">
            <summary>
            获取组的成员。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.Contacts.Passive.IContactsOutter.Broadcast(System.String,System.Int32,System.Byte[],System.String,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            在组内广播信息。
            </summary>
            <param name="groupID">接收广播信息的组ID</param>
            <param name="broadcastType">广播信息的类型</param>
            <param name="broadcastContent">信息的内容</param>       
            <param name="tag">附加信息</param>   
            <param name="action">当通道繁忙时采取的操作。</param>        
        </member>
        <member name="M:ESPlus.Application.Contacts.Passive.IContactsOutter.BroadcastBlob(System.String,System.Int32,System.Byte[],System.String,System.Int32)">
            <summary>
            在组内广播大数据块信息。直到数据发送完毕，该方法才会返回。若不想阻塞调用线程，可考虑使用异步广播重载方法。
            </summary>
            <param name="groupID">接收广播信息的组ID</param>
            <param name="broadcastType">广播信息的类型</param>
            <param name="blobContent">大数据块的内容</param>      
            <param name="tag">附加信息</param>   
            <param name="fragmentSize">分片传递时，片段的大小</param>         
        </member>
        <member name="M:ESPlus.Application.Contacts.Passive.IContactsOutter.BroadcastBlob(System.String,System.Int32,System.Byte[],System.String,System.Int32,ESPlus.Application.ResultHandler,System.Object)">
            <summary>
            在组内异步广播大数据块信息（当前调用线程立即返回）。
            </summary>
            <param name="groupID">接收广播信息的组ID</param>
            <param name="broadcastType">广播信息的类型</param>
            <param name="blobContent">大数据块的内容</param>  
            <param name="tag">附加信息</param>   
            <param name="fragmentSize">分片传递时，片段的大小</param>         
            <param name="handler">当发送任务结束时，将回调该处理器</param>
            <param name="handlerTag">将回传给ResultHandler的参数</param>
        </member>
        <member name="T:ESPlus.Application.Contacts.Server.ContactsMessageProcesser">
            <summary>
            与ESPlatform结合：
            (1)由事件（比如加入组）发生的宿主服务器（即导致事件发生的用户所在的服务器）负责通知群内成员或群友。
            (2)如果事件是由平台或服务端触发，同理，则由目标用户所在的服务器负责通知。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.Server.ContactsMessageProcesser.UserManager">
            <summary>
            本地用户管理器
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.Server.ContactsMessageProcesser.PlatformUserManager">
            <summary>
            平台用户管理器
            </summary>
        </member>
        <member name="T:ESPlus.Application.Contacts.Server.IContactsController">
            <summary>
            联系人控制器。
            </summary>
        </member>
        <member name="E:ESPlus.Application.Contacts.Server.IContactsController.BroadcastReceived">
            <summary>
            当服务端接收到要转发的广播消息时（BroadcastBlobListened属性决定了是否包括blob广播），触发此事件。参数：broadcasterID - groupID - broadcastType - broadcastContent - tag
            </summary>
        </member>
        <member name="E:ESPlus.Application.Contacts.Server.IContactsController.BroadcastFailed">
            <summary>
            当因为某个组成员不在线而导致对其广播失败时（不包括Blob及其片段信息），将触发该事件。参数：UserID（组成员ID） - BroadcastInformation。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.Server.IContactsController.BroadcastBlobListened">
            <summary>
            是否监听来自客户端的Blob广播，默认值为false。如果为true，即使客户端广播的是blob消息，也将触发BroadcastReceived事件（将需要更多的内存）。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.Server.IContactsController.ContactsDisconnectedNotifyEnabled">
            <summary>
            用户下线时，是否通知相关联系人。默认值为true。        
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.Server.IContactsController.ContactsConnectedNotifyEnabled">
            <summary>
            用户上线时，是否通知相关联系人。默认值为true。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Contacts.Server.IContactsController.UseContactsNotifyThread">
            <summary>
            联系人上下线通知是否使用单独的线程。默认值为false。       
            </summary>
        </member>
        <member name="M:ESPlus.Application.Contacts.Server.IContactsController.Broadcast(System.String,System.Int32,System.Byte[],System.String,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            在组内广播信息。
            </summary>        
            <param name="groupID">接收广播信息的组ID</param>
            <param name="broadcastType">广播信息的类型</param>
            <param name="broadcastContent">广播的内容</param>      
            <param name="tag">附加信息</param>   
            <param name="action">当通道繁忙时采取的操作。</param> 
        </member>
        <member name="M:ESPlus.Application.Contacts.Server.IContactsController.BroadcastBlob(System.String,System.Int32,System.Byte[],System.String,System.Int32)">
            <summary>
            在组内广播大数据块信息。直到数据发送完毕，该方法才会返回。如果担心长时间阻塞调用线程，可考虑异步调用本方法。
            </summary>
            <param name="groupID">接收广播信息的组ID</param>
            <param name="broadcastType">广播信息的类型</param>
            <param name="blobContent">大数据块的内容</param>      
            <param name="tag">附加信息</param>   
            <param name="fragmentSize">分片传递时，片段的大小</param>        
        </member>
        <member name="M:ESPlus.Application.Contacts.Server.IContactsController.BroadcastBlob(System.String,System.Int32,System.Byte[],System.String,System.Int32,ESPlus.Application.ResultHandler,System.Object)">
            <summary>
            在组内广播大数据块信息。直到数据发送完毕，该方法才会返回。如果担心长时间阻塞调用线程，可考虑异步调用本方法。
            </summary>
            <param name="groupID">接收广播信息的组ID</param>
            <param name="broadcastType">广播信息的类型</param>
            <param name="blobContent">大数据块的内容</param>      
            <param name="tag">附加信息</param>   
            <param name="fragmentSize">分片传递时，片段的大小</param>        
            <param name="handler">当发送任务结束时，将回调该处理器</param>
            <param name="handlerTag">将回传给ResultHandler的参数</param>
        </member>
        <member name="T:ESPlus.Application.Contacts.Server.IContactsManager">
            <summary>
            联系人管理器接口。
            </summary>
        </member>
        <member name="M:ESPlus.Application.Contacts.Server.IContactsManager.OnUserOffline(System.String)">
            <summary>
            当用户下线时，ESF通过此方法回调联系人管理器。
            【有些动态关系可能需要当用户下线的时候解除，为了在解除之前能通知其对应的联系人，所以，ESF会在完成下线通知后，才回调此方法】
            </summary>       
        </member>
        <member name="M:ESPlus.Application.Contacts.Server.IContactsManager.GetContacts(System.String)">
            <summary>
            获取用户的相关联系人。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.Contacts.Server.IContactsManager.GetGroupMemberList(System.String)">
            <summary>
            获取目标组的所有成员。
            </summary>        
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.BinaryInformationContract.InformationType">
            <summary>
            当MessageType为CustomizeInfoMessageTypeRoom.Response时，忽略该属性。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.AgileInformationSerializer">
            <summary>
            灵活的自定义信息序列化器。
            如果自定义信息协议从BaseSerializeContract继承，则使用.NET自带的序列化器进行序列化（会严格要求各方使用的加密的协议dll为同一版本）；否则使用CompactPropertySerializer进行序列化。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.BaseInformationTypes">
            <summary>
            自定义信息类型空间的基类。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.BaseInformationTypes.StartKey">
            <summary>
            当前信息类型空间的起始值。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.BaseInformationTypes.MaxKeyValue">
            <summary>
            当前信息类型空间的最大值。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.ComplexCustomizeHandler">
            <summary>
            用于将客户端的多个ICustomizeHandler整合起来。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.HandingException">
            <summary>
            在处理Query系列方法发出的的请求时，如果处理方出现未捕获的异常，则请求方的Query调用会抛出HandingException。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.ICustomizeHandler">
            <summary>
            服务端自定义信息处理器接口。
            </summary>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.ICustomizeHandler.HandleInformation(System.String,ESFramework.ClientType,System.Int32,System.Byte[])">
            <summary>
            处理接收到的自定义信息（包括大数据块信息）。
            </summary>
            <param name="sourceUserID">发送该信息的用户ID。如果为null，表示信息发送者为服务端。</param>
            <param name="clientType">客户端设备类型</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.ICustomizeHandler.HandleQuery(System.String,ESFramework.ClientType,System.Int32,System.Byte[])">
            <summary>
            处理接收到的请求并返回应答信息。
            </summary>
            <param name="sourceUserID">发送该请求信息的用户ID。如果为null，表示信息发送者为服务端。</param>     
            <param name="clientType">客户端设备类型</param>
            <param name="informationType">自定义请求信息的类型</param>  
            <param name="info">请求信息</param>
            <returns>应答信息</returns>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.EmptyCustomizeHandler">
            <summary>
            不做任何处理的CustomizeHandler。NullObject模式。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.IIntegratedCustomizeHandler">
            <summary>
            能够被ComplexCustomizeHandler集成的ICustomizeHandler。
            </summary>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.IIntegratedCustomizeHandler.CanHandle(System.Int32)">
            <summary>
            当前的处理器能否处理目标类型的自定义信息。
            </summary>
            <param name="informationType">自定义信息的类型</param>
            <returns>能处理？</returns>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom">
            <summary>
            所有与自定义信息相关的消息类型的空间。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.InformationByPost">
            <summary>
            信息。C->S 或 S->C 或 C->C。协议为BinaryInformationContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.InformationBySend">
            <summary>
            信息。C->S 或 S->C 或 C->C。协议为BinaryInformationContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.Request">
            <summary>
            请求信息。 C->S 或 C->C 。协议为BinaryInformationContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.Response">
            <summary>
            对应request的应答信息。 C->C 或 S->C 或 C->S。回复协议为BinaryInformationContract。如果消息体为null，则表示对方在处理请求时抛出了异常。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.InformationNeedAck">
            <summary>
            需要进行ACK回复确认的信息。C->S 或 S->C 或 C->C。协议为BinaryInformationContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.Ack">
            <summary>
            对InformationCertainly类型的信息的确认回复。协议体为空。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.BlobInformation">
            <summary>
            大块二进制信息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.BlobByRapidEngine">
            <summary>
            直接通过Rapid引擎发送的消息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.GetClientTimeRequest">
            <summary>
            S->C
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.GetClientTimeResponse">
            <summary>
            C->S
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.BlobByRapidEngineNeedEcho">
            <summary>
            直接通过Rapid引擎发送的消息，并且该消息还要发送给自己的其它在线客户端。C->S
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.BlobByRapidEngineEchoNotify">
            <summary>
            服务端将那些需要Echo的消息，发送给发送者的其它在线客户端。S->C
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.BlobByRapidEngineToSpecialDevice">
            <summary>
            直接通过Rapid引擎发送的消息给对方特定的设备（此消息头中的DestUserID为 LoginID）。 2020.08.21
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.BlobQuery">
            <summary>
            大块二进制信息Query。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.CustomizeMessageTypeRoom.BlobQueryResult">
            <summary>
            大块二进制信息Query的回复。
            </summary>
        </member>
        <member name="F:ESPlus.Application.CustomizeInfo.Passive.CustomizeOutter.queryBlobResultManager">
            <summary>
            用于管理QueryBlob的回复结果。key：blob请求的最后一个分块消息的MessageID ； Value：Query的结果
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.Passive.CustomizePassiveProcesser">
            <summary>
            处理所有"自定义信息"的消息的客户端处理器。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter">
            <summary>
            该接口用于向服务器或其它在线用户发送自定义信息、同步调用请求。    
            zhuweisky 2010.08.17
            </summary>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.Send(System.Int32,System.Byte[])">
            <summary>
            向服务器发送信息。
            </summary>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.Send(System.String,System.Int32,System.Byte[])">
            <summary>
            向在线用户targetUserID发送信息。
            </summary>
            <param name="targetUserID">接收消息的目标用户ID</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>      
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.Query(System.Int32,System.Byte[])">
            <summary>
            向服务器提交请求信息，并返回服务器的应答信息。如果超时没有应答则将抛出Timeout异常。
            </summary>      
            <param name="informationType">自定义请求信息的类型</param>
            <param name="info">请求信息</param>
            <returns>服务器的应答信息</returns>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.QueryBlob(System.Int32,System.Byte[])">
            <summary>
            向服务器提交请求信息，并返回服务器的应答信息。如果超时没有应答则将抛出Timeout异常。
            </summary>      
            <param name="informationType">自定义请求信息的类型</param>
            <param name="info">请求信息</param>
            <returns>服务器的应答信息</returns>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.Send(System.String,System.Int32,System.Byte[],System.Boolean,ESFramework.ActionTypeOnChannelIsBusy)">
            <summary>
            向在线用户或服务器发送信息。
            </summary>
            <param name="targetUserID">接收消息的目标用户ID。如果为null，表示接收者为服务器。</param>
            <param name="informationType">自定义信息类型</param>
            <param name="post">是否采用Post模式发送消息</param>  
            <param name="action">当通道繁忙时所采取的动作</param>  
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.Send(System.String,System.Int32,System.Byte[],System.Boolean,ESFramework.ActionTypeOnChannelIsBusy,ESPlus.Application.CustomizeInfo.Passive.ChannelMode)">
            <summary>
            向在线用户或服务器发送信息。
            </summary>
            <param name="targetUserID">接收消息的目标用户ID。如果为null，表示接收者为服务器。</param>
            <param name="informationType">自定义信息类型</param>
            <param name="post">是否采用Post模式发送消息</param>  
            <param name="action">当通道繁忙时所采取的动作</param>  
            <param name="mode">通道选择模型。如果接收者为服务器，则忽略该参数。</param>
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.TransferByServer(System.String,System.Int32,System.Byte[])">
            <summary>
            即使与目标用户之间有可靠的P2P通道存在，也要通过服务器转发信息。
            </summary>
            <param name="targetUserID">接收消息的目标用户ID，不能为null。</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>         
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.SendCertainly(System.String,System.Int32,System.Byte[])">
            <summary>
            向在线用户或服务器发送信息，并等待其ACK。当前调用线程会一直阻塞，直到收到ACK；如果超时都没有收到ACK，则将抛出TimeoutException。
            </summary>
            <param name="targetUserID">接收消息的目标用户ID。如果为null，表示信息接收者为服务端。</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>      
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.SendCertainly(System.String,System.Int32,System.Byte[],ESPlus.Application.ResultHandler,System.Object)">
            <summary>
            向在线用户或服务器发送信息。当前调用线程会立即返回。当收到ACK或者超时都没有收到ACK，将回调ResultHandler。
            </summary>
            <param name="targetUserID">接收消息的目标用户ID。如果为null，表示信息接收者为服务端。</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>     
            <param name="ackHandler">被回调的处理器</param>
            <param name="tag">携带的状态数据，将被传递给回调函数handler</param>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Passive.ICustomizeOutter.SendBlob(System.String,System.Int32,System.Byte[],System.Int32,ESFramework.IProgressObserver)">
            <summary>
            向在线用户或服务器发送大的数据块信息。直到数据发送完毕，该方法才会返回。如果担心长时间阻塞调用线程，可考虑异步调用本方法。
            </summary>
            <param name="targetUserID">接收消息的目标用户ID。如果为null，表示接收者为服务器。</param>
            <param name="informationType">自定义信息类型</param>
            <param name="blobInfo">大的数据块信息</param>  
            <param name="fragmentSize">分片传递时，片段的大小</param>  
            <param name="observer">消息发送进度的观察者</param>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.Passive.ChannelMode">
            <summary>
            当Client发送消息给另外一个Client时，选择通道的模型。
            </summary>
        </member>
        <member name="F:ESPlus.Application.CustomizeInfo.Passive.ChannelMode.P2PChannelFirst">
            <summary>
            如果P2P通道存在，则使用P2P通道传送；否则，经过服务器中转。
            </summary>
        </member>
        <member name="F:ESPlus.Application.CustomizeInfo.Passive.ChannelMode.TransferByServer">
            <summary>
            经过服务器中转，不使用P2P通道。
            </summary>
        </member>
        <member name="F:ESPlus.Application.CustomizeInfo.Passive.ChannelMode.ByP2PChannel">
            <summary>
            使用P2P通道。如果P2P通道不存在，则丢弃消息。
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.Server.CustomizeMessageProcesser">
            <summary>
            处理所有"自定义信息"的消息的服务端处理器。
            </summary>
        </member>
        <member name="P:ESPlus.Application.CustomizeInfo.Server.CustomizeMessageProcesser.UserManager">
            <summary>
            本地用户管理器
            </summary>
        </member>
        <member name="T:ESPlus.Application.CustomizeInfo.Server.ICustomizeController">
            <summary>
            服务端主动向用户发送/投递自定义信息以及同步调用客户端的控制接口。   
            zhuweisky 2010.08.17
            </summary>
        </member>
        <member name="E:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.TransmitFailed">
            <summary>
            当因为目标用户不在线而导致服务端转发自定义信息失败时（不包括Blob及其片段信息），将触发该事件。参数为转发失败的信息。
            </summary>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.Send(System.String,System.Int32,System.Byte[],System.Nullable{ESFramework.ClientType})">
            <summary>
            向ID为userID的在线用户发送信息。如果用户不在线，则直接返回。
            </summary>
            <param name="userID">接收消息的用户ID</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>   
            <param name="clientType">要发给哪个终端设备。如果传入null，表示发送给所有在线终端设备</param> 
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.SendCertainlyToLocalClient(System.String,System.Int32,System.Byte[],ESFramework.ClientType)">
            <summary>
            向当前AS上的在线用户发送信息，并等待其ACK。当前调用线程会一直阻塞，直到收到ACK；如果超时都没有收到ACK，则将抛出Timeout异常。
            </summary>
            <param name="userID">接收消息的用户ID</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>          
            <param name="clientType">要发给哪个终端设备</param> 
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.SendCertainlyToLocalClient(System.String,System.Int32,System.Byte[],ESFramework.ClientType,ESPlus.Application.ResultHandler,System.Object)">
            <summary>
            向当前AS上的在线用户发送信息。当前调用线程会立即返回。当收到ACK或者超时都没有收到ACK，将回调ResultHandler。
            </summary>
            <param name="userID">接收消息的用户ID</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>          
            <param name="clientType">要发给哪个终端设备</param> 
            <param name="handler">被回调的处理器</param>
            <param name="tag">携带的状态数据，将被传递给回调函数handler</param>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.Send(System.String,System.Int32,System.Byte[],System.Boolean,ESFramework.ActionTypeOnChannelIsBusy,System.Nullable{ESFramework.ClientType})">
            <summary>
            向ID为userID的在线用户发送信息。如果用户不在线，则直接返回。
            </summary>
            <param name="userID">接收消息的用户ID</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>        
            <param name="post">是否采用Post模式发送消息</param>  
            <param name="action">当通道繁忙时所采取的动作</param>  
            <param name="clientType">要发给哪个终端设备。如果传入null，表示发送给所有在线终端设备</param> 
            <returns>如果成功发送，将返回true；否则，（比如丢弃）返回false。</returns>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.SendBlob(System.String,System.Int32,System.Byte[],System.Int32,System.Nullable{ESFramework.ClientType})">
            <summary>
            向ID为userID的在线用户发送大数据块信息。直到数据发送完毕，该方法才会返回。如果担心长时间阻塞调用线程，可考虑异步调用本方法。
            </summary>
            <param name="userID">接收消息的用户ID</param>
            <param name="informationType">自定义信息类型</param>
            <param name="blobInfo">大数据块信息</param>
            <param name="fragmentSize">分片传递时，片段的大小</param>  
            <param name="clientType">要发给哪个终端设备。如果传入null，表示发送给所有在线终端设备</param> 
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.QueryLocalClient(System.String,System.Int32,System.Byte[],ESFramework.ClientType)">
            <summary>
            询问当前AS的在线用户，并返回应答信息。如果超时没有应答则将抛出Timeout异常。如果客户端在处理请求时出现未捕获的异常，则该调用会抛出HandingException。
            </summary>      
            <param name="userID">接收并处理服务器询问的目标用户ID</param>
            <param name="informationType">自定义请求信息的类型</param>
            <param name="info">请求信息</param>
            <returns>客户端给出的应答信息</returns>
            <param name="clientType">要发给哪个终端设备</param> 
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.QueryLocalClient(System.String,System.Int32,System.Byte[],ESFramework.ClientType,ESPlus.Application.CallbackHandler,System.Object)">
            <summary>
            回复异步调用。当前AS的在线用户发送请求信息，当收到应答信息或超时时，将回调CallbackHandler函数。
            </summary>      
            <param name="userID">接收并处理服务器询问的目标用户ID</param>
            <param name="informationType">自定义请求信息的类型</param>
            <param name="info">请求信息</param>
            <param name="clientType">要发给哪个终端设备</param> 
            <param name="handler">用于处理回复信息的处理器</param>
            <param name="tag">携带的状态数据，将被传递给回调函数handler</param>
        </member>
        <member name="M:ESPlus.Application.CustomizeInfo.Server.ICustomizeController.Post(System.String,ESFramework.ClientType,System.Int32,System.Byte[],System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            发送有依赖关系的可丢弃的消息。
            （1）如果等待发送的消息个数大于discardPostingCount时，则丢弃当前消息。
            （2）当前数据是否依赖上一次发送的数据。如果依赖，当上一次数据被丢弃时，则直接丢弃当前消息。
            </summary>
            <param name="userID">接收消息的用户ID</param>
            <param name="clientType">接收消息的设备类型</param>
            <param name="informationType">自定义信息类型</param>
            <param name="info">信息</param>     
            <param name="token4RecordPosting">消息计数标记</param>      
            <param name="sourceUserID">消息的发送者</param>
            <param name="discardPostingCount">当等待投递的消息数大于该值时，就丢弃消息。</param>     
            <param name="dependOnPre">当前数据是否依赖上一次发送的数据。如果依赖，当上一次数据被丢弃时，直接丢弃档期数据。</param>
            <returns>如果消息被丢弃，则返回false。</returns>
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.GroupNotifyContract">
            <summary>
            服务器给客户端的通知。
            </summary>	
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.GroupInfo">
            <summary>
            群组的信息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.GroupInfo.ID">
            <summary>
            组ID。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.GroupInfo.Tag">
            <summary>
            附加备注信息。如要修改，请调用IDynamicGroupOutter或IDynamicGroupController的SetGroupTag方法，修改后，Tag将自动在C/S间同步。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.GroupInfo.Members">
            <summary>
            组成员列表（只读）。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.GroupInfo.LocalTag">
            <summary>
            本地附加信息（只在当前进程使用，不会在C/S间同步）。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.BroadcastContract2.InformationType">
            <summary>
            广播信息的类型。
            </summary>
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom">
            <summary>
            GroupMessageTypeRoom 与组操作相关的所有消息类型定义。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.JoinGroup">
            <summary>
            请求加入组。对应协议为string,utf-8,groupID。回复协议为int,JoinGroupResult
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.QuitGroup">
            <summary>
            请求退出组。对应协议为string,utf-8,groupID。没有回复。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.SomeoneJoinGroupNotify">
            <summary>
            对组内通知新成员加入组。Server=>Client。对应协议为GroupNotifyContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.SomeoneQuitGroupNotify">
            <summary>
            对组内通知某成员退出组。Server=>Client。对应协议为GroupNotifyContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.PullIntoGroupNotify">
            <summary>
            自己被拉入某组的通知。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.RemoveFromGroupNotify">
            <summary>
            自己被从某组中移除。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.SomeonePullIntoGroupNotify">
            <summary>
            其他人被拉入某组。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.SomeoneRemoveFromGroupNotify">
            <summary>
            其他人被移出某组。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.GroupmateOfflineNotify">
            <summary>
            对组内通知某成员掉线（S->C）。对应协议为UserContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.GroupmateOnlineNotify">
            <summary>
            对组内通知某成员掉线（S->C）。对应协议为UserContract。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.DynamicGroupMessageTypeRoom.SelfJoinGroupNotify">
            <summary>
            当用户的某设备加入组时，通知该用户的其它设备。Server=>Client。
            </summary>
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.Passive.DynamicGroupOutter">
            <summary>
            IDynamicGroupOutter 的实现。    
            </summary>
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter">
            <summary>
            用于客户端向服务器发送与动态组相关的信息，或从服务器获取动态组（自己参与其中的）的相关通知。    
            1.动态组分为两种类型：组员掉线就从组中移除，或者不移除（默认值）。服务端通过IDynamicGroupController.SetGroupActionType方法可以设定这个类型。
            2.巧妙使用Tag。通过SetGroupTag方法，可以设定目标组携带的Tag（比如，群名称、群公告等），并会同步到所有组员。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.BroadcastReceived">
            <summary>
            当接收到某个组内的广播消息时，触发此事件。参数：broadcasterID - groupID - broadcastType - broadcastContent - comment。
            如果broadcasterID为null，表示是服务端发送的广播。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.GroupmateOffline">
            <summary>
            当某个动态组的组友掉线时，触发此事件。        
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.GroupmateOnline">
            <summary>
            当某个动态组的组友上线时，触发此事件。        
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.SomeoneJoinGroup">
            <summary>
            当新成员加入组时，触发该事件。参数：groupID - memberID
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.SomeoneQuitGroup">
            <summary>
            当成员退出组时，触发该事件。参数：groupID - memberID
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.SomeoneBePulledIntoGroup">
            <summary>
            当某人被拉入组时，触发该事件。参数：groupID - memberIDList - operatorID。
            当OperatorID为null时，表示操作者是服务端。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.SomeoneBeRemovedFromGroup">
            <summary>
            当某人被移除组时，触发该事件。参数：groupID - memberIDList - operatorID
            当OperatorID为null时，表示操作者是服务端。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.BePulledIntoGroup">
            <summary>
            当自己被拉入组时，触发该事件。参数：groupInformation - operatorID。
            当OperatorID为null时，表示操作者是服务端。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.BeRemovedFromGroup">
            <summary>
            当自己被移除组时，触发该事件。参数：groupID - operatorID
            当OperatorID为null时，表示操作者是服务端。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.BeInvitedJoinGroup">
            <summary>
            当收到加入组的邀请时，触发该事件。参数：GroupInformation - OperatorID。        
            注意：收到邀请时，自己尚未加入组。若接受邀请，则可以调用JoinGroup加入目标组。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.GroupTagChanged">
            <summary>
            当目标组的Tag发生变化时，触发该事件。GroupID - newTag - OperatorID
            </summary>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.Broadcast(System.String,System.Int32,System.Byte[],System.String)">
            <summary>
            在目标组内广播消息。
            </summary>
            <param name="groupID">目标组ID</param>
            <param name="broadcastType">广播消息类型</param>
            <param name="broadcastContent">广播消息内容</param>
            <param name="comment">附加信息</param>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.GetMyGroups">
            <summary>
            获取我的所有组。
            </summary>
            <returns>组ID列表</returns>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.GetGroupInformation(System.String,System.Boolean)">
            <summary>
            获取组信息。
            </summary>
            <param name="groupID">目标组ID</param>
            <param name="useLocalCache">是否使用本地缓存？如果为true且本地有缓存，则直接从本地缓存获取组信息。</param>
            <returns></returns>        
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.SyncGroupMembers(System.String)">
            <summary>
            从服务器获取最新的组成员列表同步到本地。
            </summary>
            <param name="groupID">目标组ID</param>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.GetOnlineGroupmates">
            <summary>
            获取所有在线组友的列表。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.SetGroupTag(System.String,System.String)">
            <summary>
            设置目标组的Tag。其它组成员将收到GroupTagChanged事件通知。
            前提：目标组必须存在，否则将忽略该调用。
            </summary>
            <param name="groupID">目标组ID</param>
            <param name="tag">新的tag</param>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.JoinGroup(System.String)">
            <summary>
            加入组。
            </summary>  
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.QuitGroup(System.String)">
            <summary>
            退出组。
            </summary>  
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.PullIntoGroup(System.String,System.Collections.Generic.List{System.String})">
            <summary>
            将用户拉入组。如果操作成功，将收到SomeoneBePulledIntoGroup事件通知。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.RemoveFromGroup(System.String,System.Collections.Generic.List{System.String})">
            <summary>
            将用户从动态组中移除。如果操作成功，将收到SomeoneBeRemovedFromGroup事件通知。
            </summary>   
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.InviteJoinGroup(System.String,System.Collections.Generic.List{System.String})">
            <summary>
            邀请用户加入动态组。被邀请的用户将会触发BeInvitedJoinGroup事件。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Passive.IDynamicGroupOutter.ClearLocalCache">
            <summary>
            清空本地缓存的所有组信息。（在掉线重连成功后，本地缓存有可能已经过时）
            </summary>
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.Server.DynamicGroupManager">
            <summary>
            动态组管理器。
            （1）所有的组员都是在线的。只要组员掉线，则将其从组中移除。
            （2）如果要加入的目标组不存在，则自动创建目标组，并加入。
            （3）当某个组中不存在任何成员时（比如都退出），则销毁组。
            </summary>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.DynamicGroupManager.GetGroupMembers(System.String)">
            <summary>
            返回的集合不可修改。
            </summary>  
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.Server.DynamicGroupProcesser">
            <summary>
            与ESPlatform结合：
            (1)由事件（比如加入组）发生的宿主服务器（即导致事件发生的用户所在的服务器）负责通知群内成员或群友。
            (2)如果事件是由平台或服务端触发，同理，则由目标用户所在的服务器负责通知。
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.Server.DynamicGroupProcesser.UserManager">
            <summary>
            本地用户管理器
            </summary>
        </member>
        <member name="P:ESPlus.Application.DynamicGroup.Server.DynamicGroupProcesser.PlatformDataProvider">
            <summary>
            当启用ESPlatform服务器群集时，需要设置该属性。
            </summary>
        </member>
        <member name="T:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController">
            <summary>
            动态组控制器。
            1.动态组分为两种类型：组员掉线就从组中移除，或者不移除（默认值）。服务端通过IDynamicGroupController.SetGroupActionType方法可以设定这个类型。
            2.巧妙使用PresetGroup方法，可以在服务端启动的时候，就预设一些已经存在的组（比如从DB中加载的群）。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.BroadcastReceived">
            <summary>
            当服务端接收到要在组内转发的广播消息时，触发此事件。参数：broadcasterID - groupID - broadcastType - broadcastContent - comment
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.GroupCreated">
            <summary>
            第一个成员加入组将导致动态组被创建，触发该事件。参数：groupID
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.GroupDestroyed">
            <summary>
            最后一个成员退出组将导致动态组被销毁，触发该事件。参数：groupID
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.SomeoneJoinGroup">
            <summary>
            当新成员加入组时，触发该事件。参数：groupID - memberID
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.SomeoneQuitGroup">
            <summary>
            当成员退出组时，触发该事件。参数：groupID - memberID
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.SomeoneBePulledIntoGroup">
            <summary>
            当某些人被拉入组时，触发该事件。参数：groupID - memberIDs - operatorID。
            当OperatorID为null时，表示操作者是服务端。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.SomeoneBeRemovedFromGroup">
            <summary>
            当某些人被移除组时，触发该事件。参数：groupID - memberIDs - operatorID
            当OperatorID为null时，表示操作者是服务端。
            </summary>
        </member>
        <member name="E:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.GroupTagChanged">
            <summary>
            当目标组的Tag发生变化时，触发该事件。groupID - newTag - operatorID
            </summary>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.Broadcast(System.String,System.Int32,System.Byte[],System.String)">
            <summary>
            在组内广播信息。
            </summary>        
            <param name="groupID">接收广播信息的组ID</param>
            <param name="broadcastType">广播信息的类型</param>
            <param name="broadcastContent">广播的内容</param>      
            <param name="comment">附加信息</param>          
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.PullIntoGroup(System.String,System.Collections.Generic.List{System.String})">
            <summary>
            将用户拉入组。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.RemoveFromGroup(System.String,System.Collections.Generic.List{System.String})">
            <summary>
            将用户从动态组中移除。
            </summary>   
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.GetGroup(System.String)">
            <summary>
            获取组信息。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.GetGroupmates(System.String)">
            <summary>
            获取所有组友列表。
            </summary>      
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.GetGroupList">
            <summary>
            获取所有动态组的ID列表。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.SetGroupActionType(System.String,System.Boolean)">
            <summary>
            设置组反应类型（当组成员掉线时）。
            注意：最好是在GroupCreated事件中，即组被创建时就立即设置该组的ActionType。
            如果不设置，则默认为：当目标组中的成员掉线时，不会从该组中移除成员。
            </summary>
            <param name="groupID">目标组ID</param>
            <param name="quitGroupWhenOffline">当目标组中的成员掉线时，是否从该组中移除？默认值：false。</param>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.PresetGroup(System.String,System.Collections.Generic.List{System.String})">
            <summary>
            预设组。
            如果目标组ID已经存在，将抛出异常。        
            </summary>
            <param name="groupID">组ID</param>
            <param name="members">组成员列表</param>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.SetGroupTag(System.String,System.String)">
            <summary>
            设置目标组的Tag。组成员将收到GroupTagChanged事件通知。
            前提：目标组必须存在，否则将忽略该调用。
            </summary>
            <param name="groupID">目标组ID</param>
            <param name="tag">新的tag</param>
        </member>
        <member name="M:ESPlus.Application.DynamicGroup.Server.IDynamicGroupController.GetGroupTag(System.String)">
            <summary>
            获取目标组的Tag。
            </summary>
            <param name="groupID">目标组ID</param>
        </member>
        <member name="T:ESPlus.Application.Information">
            <summary>
            一个完整的自定义信息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Information.SourceID">
            <summary>
            信息的发送者。可以为UserID或者NetServer.SystemUserID。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Information.DestID">
            <summary>
            信息的接收者。可以为UserID或者NetServer.SystemUserID或GroupID（广播消息）。
            </summary>
        </member>
        <member name="P:ESPlus.Application.Information.InformationType">
            <summary>
            自定义信息类型
            </summary>
        </member>
        <member name="P:ESPlus.Application.Information.Content">
            <summary>
            信息的内容
            </summary>
        </member>
        <member name="T:ESPlus.Application.BroadcastInformation">
            <summary>
            一个完整的广播信息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.BroadcastInformation.SourceID">
            <summary>
            广播信息的发送者。可以为UserID或者NetServer.SystemUserID。
            </summary>
        </member>
        <member name="P:ESPlus.Application.BroadcastInformation.GroupID">
            <summary>
            广播信息的接收组的ID。
            </summary>
        </member>
        <member name="P:ESPlus.Application.BroadcastInformation.BroadcastType">
            <summary>
            广播信息类型
            </summary>
        </member>
        <member name="P:ESPlus.Application.BroadcastInformation.Content">
            <summary>
            广播信息的内容
            </summary>
        </member>
        <member name="P:ESPlus.Application.BroadcastInformation.Tag">
            <summary>
            附加信息。
            </summary>
        </member>
        <member name="T:ESPlus.Application.IPlatformDataProvider">
            <summary>
            群集中的AS通过此接口从ESPlatform平台服务器获取应用数据。
            </summary>
        </member>
        <member name="T:ESPlus.Application.IDataProvider4Platform">
            <summary>
            群集中ESPlatform平台服务器通过此接口回调AS以获取应用数据。
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.P2PSessionMessageTypeRoom">
            <summary>
            P2PSessionMessageTypeRoom 与P2P Session相关的消息类型的空间。
            zhuweisky 2005.06.19
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.P2PSessionMessageTypeRoom.P2PLogon">
            <summary>
            P2P登陆。经由TCP，主体为P2PLogonContract，Client => Server
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.P2PSessionMessageTypeRoom.ReqUserData">
            <summary>
            获取好友P2P地址列表。经由TCP，请求主体为ReqUserDataContract，回复ResUserDataContract
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.P2PSessionMessageTypeRoom.InviteTcpP2P">
            <summary>
            邀请对方TCP P2P连接自己。协议体为null。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.P2PSessionMessageTypeRoom.InviteUdpP2P">
            <summary>
            邀请对方Udp P2P连接自己。协议体为null。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.P2PSessionMessageTypeRoom.GetMyPublicIPE">
            <summary>
            获取自己的公网IPE。经由TCP，请求主体为空，回复UserIPEResponseContract Client => Server
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.P2PSessionMessageTypeRoom.TcpP2PChannelTest">
            <summary>
            基于TCP的P2P测试消息。经由TcpP2P通道发送给对方的P2P消息，当通过TCP P2P连接上某个好友时，会经此通道向好友发送该测试消息。
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.PublicIPEResponseContract">
            <summary>
            返回用户的公网IP和经NAPT后的TCP端口。
            </summary>    
        </member>
        <member name="P:ESPlus.Application.P2PSession.ReceiveP2PProbeNotifyContract.SourceIPEndPoint">
            <summary>
            P2P通道的起始方IPE。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.ReceiveP2PProbeNotifyContract.EndingIPEndPoint">
            <summary>
            P2P通道的结束方IPE。
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.IP2PController">
            <summary>
            P2P通道控制器。控制和查看所有的P2P通道。
            </summary>
        </member>
        <member name="E:ESPlus.Application.P2PSession.Passive.IP2PController.P2PConnectFailed">
            <summary>
            当尝试建立P2P连接失败时，触发此事件。参数为对方的UserID。
            </summary>
        </member>
        <member name="E:ESPlus.Application.P2PSession.Passive.IP2PController.P2PChannelOpened">
            <summary>
            当某个P2P Channel创建成功时，触发此事件。
            </summary>
        </member>
        <member name="E:ESPlus.Application.P2PSession.Passive.IP2PController.P2PChannelClosed">
            <summary>
            当某个P2P Channel关闭时，触发此事件。
            </summary>
        </member>
        <member name="E:ESPlus.Application.P2PSession.Passive.IP2PController.AllP2PChannelClosed">
            <summary>
            当所有的P2P通道关闭时（比如因为自己断线），触发此事件。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.IP2PController.P2PChannelMode">
            <summary>
            采用的P2P通道的类型。默认为TcpAndUdp，表示TCP打洞和UDP打洞都进行尝试。
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PController.P2PConnectAsyn(System.String,ESFramework.ClientType)">
            <summary>
            尝试与目标用户建立P2P Channel。（异步方式。）
            </summary>
            <param name="destUserID">目标用户的UserID</param>
            <param name="destType">目标用户的设备类型</param>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PController.IsP2PChannelExist(System.String,ESFramework.ClientType)">
            <summary>
            与目标用户之间是否存在P2P通道。
            </summary>       
            <param name="destUserID">目标用户的UserID</param>
            <param name="destType">目标用户的设备类型</param>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PController.P2PChannelIsBusy(System.String,ESFramework.ClientType)">
            <summary>
            P2P通道是否繁忙。如果返回null，表示没有P2P通道。
            </summary>       
            <param name="destUserID">目标用户的UserID</param>
            <param name="destType">目标用户的设备类型</param>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PController.GetP2PChannelState">
            <summary>
            获取所有P2P通道的状态。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PController.GetP2PChannelState(System.String,ESFramework.ClientType)">
            <summary>
            获取目标用户的P2P通道的状态。
            </summary>        
            <param name="destUserID">目标用户的UserID</param>
            <param name="destType">目标用户的设备类型</param>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.P2PChannelMode">
            <summary>
            P2P通道模型。
            </summary>
        </member>
        <member name="F:ESPlus.Application.P2PSession.Passive.P2PChannelMode.None">
            <summary>
            不建立P2P通道
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.GetUserData(System.String,ESFramework.ClientType)">
            <summary>
            获取用户的地址信息。如果目标用户不在线，则返回null。
            </summary>
            <param name="userID">目标用户的UserID</param>
            <returns>用户地址信息</returns>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.InviteTcpP2P(System.String)">
            <summary>
            请求目标用户使用TCP向自己发送P2P连接。
            </summary>
            <param name="userID">目标用户的UserID</param>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.InviteUdpP2P(System.String)">
            <summary>
            请求目标用户使用UDP向自己发送P2P连接。
            </summary>
            <param name="userID">目标用户的UserID</param>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.GetMyPublicIPE">
            <summary>
            向服务器请求自己的经NAPT后的公网IP和TCP端口。
            </summary> 
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.P2PLogon(ESFramework.Server.UserManagement.P2PAddress)">
            <summary>
            将P2PAddress报告给服务端。
            </summary>        
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.SendFeedbackVacancy(System.String,ESFramework.Engine.Udp.Reliable.FeedbackVacancyBody)">
            <summary>
            使用可靠的TCP发送当前EnhancedUdpClient针对destUserID的UdpSession接收缓存中的空缺状态。2015.03.11
            </summary>        
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.SendSynAck(System.String,ESFramework.AgileIPE,System.String)">
            <summary>
            使用可靠的TCP回复来自UDP的Syn。2015.03.11
            </summary>        
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.SendExitNotify(ESFramework.AgileIPE,System.String)">
            <summary>
            使用可靠的TCP来发送退出进程通知。2015.03.20
            </summary>    
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IP2PSessionOutter.SendPMTUTestAck(System.String,System.UInt16)">
            <summary>
            使用可靠的TCP回复来自UDP的PMTUTest。2015.03.11
            </summary>        
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager">
            <summary>
            IPlusP2PChannelManager TcpChannelManager和UdpChannelManager实现了此接口。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.LocalPortBinding">
            <summary>
            P2P引擎绑定的本地端口。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.EnableChannelWhenEstablished">
            <summary>
            当通道创建成功时，是否自动启用通道。默认值为true。
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.IsP2PChannelExist(System.String,ESFramework.ClientType)">
            <summary>
            与目标用户之间是否存在P2P通道。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.P2PConnect(ESPlus.Application.P2PSession.UserAddressInfo)">
            <summary>
            尝试P2P连接目标用户。
            </summary>
            <param name="destUser">目标用户的数据</param>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.P2PConnectAsyn(ESPlus.Application.P2PSession.UserAddressInfo)">
            <summary>
            尝试P2P连接目标用户。异步方式。
            </summary>
            <param name="destUser">目标用户的数据</param>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.UserOffline(System.String,ESFramework.ClientType)">
            <summary>
            接收通知p2PSessionMessageTypeRoom.UserOfflineNotify，由P2PSessionPassiveProcesser调用
            </summary>  
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.OnSelfOffline">
            <summary>
            OnSelfOffline 当客户端与服务器失去联系(掉线)时调用。
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.OnSelfRebuildSucceed">
            <summary>
            OnSelfRebuildSucceed 当客户端重连服务器成功时调用。
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.GetP2PChannelState">
            <summary>
            GetP2PChannelState 获取所有P2P通道的状态。
            </summary>       
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.IPlusP2PChannelManager.GetP2PChannelState(System.String,ESFramework.ClientType)">
            <summary>
            获取目标用户的P2P通道的状态。
            </summary>        
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.P2PChannelState">
            <summary>
            P2P通道实例的状态。
            </summary>   
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.Enabled">
            <summary>
            是否启用当前的P2P通道。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.DestUserID">
            <summary>
            当前P2P会话对方的UserID。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.ProtocolType">
            <summary>
            当前P2P通道的协议类型（TCP/UDP）。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.DestIPE">
            <summary>
            当前P2P会话对方的地址信息。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.Reliable">
            <summary>
            是否为可靠的P2P通道。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.MessageSentCount">
            <summary>
            通过当前P2P通道发送的消息的个数。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.LastMessageSentTime">
            <summary>
            通过当前P2P通道发送的最后一个消息的时间。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.OpenTime">
            <summary>
            当前P2P通道创建的时间。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PChannelState.InSameLAN">
            <summary>
            是否位于同一个局域网。
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.P2PController">
            <summary>
            P2PController P2P控制器。
            (1)用于支持那些需要在登录成功以后才可以进行正确初始化的P2PSession环境中的对象完成初始化动作。
            (2)使P2P通道的状态与主TCP连接(TO Server)的状态保持一致。
            (3)当主TCP连接重连成功时，自动重新初始化P2P通道。 
            zhuweisky 2010.05.05
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PController.MasterTcpEngine">
            <summary>
            MasterTcpEngine 与服务器进行通信的TCP引擎。
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.P2PController.P2PServerAddress">
            <summary>
            如果需要启用P2P支持，则需要设定P2P服务器的地址。如果设为null，表示不启用P2P。默认值为null。
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.P2PController.Initialize(System.String,System.Boolean)">
            <summary>
            当属性注入完毕后，即可调用该方法进行初始化。
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.P2PController.UserOffline(System.String,ESFramework.ClientType)">
            <summary>
            当用户掉线时，P2PController将关闭对应的P2P通道。
            </summary>       
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.P2PSessionOutter">
            <summary>
            P2PSessionOutter 与服务器之间通信，协助创建P2PChannel。
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.P2PSessionPassiveProcesser">
            <summary>
            P2PSessionPassiveProcesser 用于处理TCP连接上接收到的所有来自Server的消息，以及来自于其它Client的UDP消息。
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.Tcp.InConnectionManager">
            <summary>
            InConnectionManager 用于管理所有外来进入的TCP P2P连接。
            zhuweisky 2010.05.24
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.Tcp.OutConnectionManager">
            <summary>
            OutConnectionManager 用于管理所有主动发起的P2P TCP连接。
            zhuweisky 2010.05.24
            </summary>
        </member>
        <member name="E:ESPlus.Application.P2PSession.Passive.Tcp.OutConnectionManager.P2PChannelOpened">
            <summary>
            P2PChannelOpened 参数IPEndPoint为对方的IPE ，bool为是否为同一局网。
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.Tcp.TcpChannelManager">
            <summary>
            TcpChannelManager 基于TCP的P2P通道管理器。将其配置到ESFramework.Passive.MessageTransceiver.P2PChannelManager属性。
            目前只解决了同一局域网的P2P通信。
            zhuweisky 2010.05.24
            </summary>
        </member>
        <member name="T:ESPlus.Application.P2PSession.Passive.Udp.UdpChannelManager">
            <summary>
            UdpChannelManager 基于UDP的P2P通道管理器。    
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.Passive.Udp.UdpChannelManager.PublicUdpPort">
            <summary>
            向UDP服务器请求自己的公网UDP Port。未返回结果之前为0。
            </summary>
        </member>
        <member name="M:ESPlus.Application.P2PSession.Passive.Udp.UdpChannelManager.Initialize(System.String,System.String,ESPlus.Application.P2PSession.Passive.IP2PSessionOutter)">
            <summary>
            Initialize 初始化。也可以是断线重连成功时，再度重新初始化。
            </summary>     
        </member>
        <member name="T:ESPlus.Application.P2PSession.Server.P2PSessionProcesser">
            <summary>
            用于处理TCP连接上接收到的所有与P2PSession创建相关的请求。	
            zhuweisky  2006.06.16 最后修正：2010.05.05
            </summary>
        </member>
        <member name="P:ESPlus.Application.P2PSession.UserAddressInfo.P2PAddress">
            <summary>
            客户端的P2P地址信息
            </summary>
        </member>
        <member name="T:ESPlus.Advanced.IAdvancedController">
            <summary>
            服务端引擎高级控制器。如果是要Set某个属性，则必须在IRapidServerEngine的Initialize方法之前。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.IPv6Enabled">
            <summary>
            是否开启对IPv6的支持。默认值为false。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.SocketSendBuffSize">
            <summary>
            发送缓冲区的大小。默认值：64K。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.SocketReceiveBuffSize">
            <summary>
            接收缓冲区的大小。默认值：64K。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.WriteTimeoutInSecs">
            <summary>
            写超时。单位：秒。默认值：0。小于等于0表示不设定超时。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.TempFile4ResumedTTL">
            <summary>
            用于续传的临时文件的最大生存期，单位：秒。默认值：300。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.CheckFileZeroSpeedSpanInSecs">
            <summary>
            检测0速度的时间间隔，单位：秒。默认值20。设置为0，表示关闭0速度检测。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.CheckResponseTTL4Query">
            <summary>
            是否开启Query同步调用机制的回复生存期检查？默认值true。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.UseWorkThreadPool">
            <summary>
            框架的内部事务是否使用线程池中的线程？默认值：true。       
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.MaxChannelCacheSize">
            <summary>
            每个通道连接上允许最大的等待发送【包括投递】以及正在发送的消息个数。
            当等待发送以及正在发送的消息个数超过该值时，将关闭对应的连接。如果设置为0，则表示不作限制。默认值为0。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.UncompletedSendingCount4Busy">
            <summary>
            当通道上尚未发送完成的消息个数大于该值时，判定通道为繁忙（配合发送方法的ActionTypeOnChannelIsBusy参数使用）？默认值为：0。（小于0，表示始终判定为不繁忙）
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.AsynConnectionEvent">
            <summary>
            是否异步引发TCP连接成功的事件？
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.DiagnosticsEnabled">
            <summary>
            是否开启诊断。默认值为false。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.DiagnosticsViewer">
            <summary>
            通过此接口，可以获取服务端运行的诊断信息（前提：DiagnosticsEnabled属性必须设置为true）。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.CustomizeInfoHandleMode">
            <summary>
            服务端自定义信息的处理模型。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.QueueWorkerThreadCount">
            <summary>
            当CustomizeInfoHandleMode设置为TaskQueue时，工作者线程的个数。默认值为20。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.TcpExpiredSpanInSecs">
            <summary>
            某个TCP连接连上后，如果在ExpiredSpanInSecs时间内仍然没有登录成功，则将关闭该连接。
            如果ExpiredSpanInSecs小于等于0，则不做过期检查。默认值：15
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.IAdvancedController.IncompatibleDevicePairList">
            <summary>
            同一账号不能同时登录的设备对的列表。默认值为null。
            注：如果是位于ESPlatform群集平台，还需要在RapidEngineFactory.CreatePlatformServer方法参数中指定同样的列表。
            </summary>
        </member>
        <member name="M:ESPlus.Advanced.IAdvancedController.GetTaskQueueInfo(System.Int32@,System.Int32@)">
            <summary>
            当CustomizeInfoHandleMode设置为TaskQueue时，获取队列中待处理的任务个数，以及历史中最大的待处理任务个数。
            </summary>
            <param name="taskCount">待处理的任务个数</param>
            <param name="maxTaskCount">历史中最大的待处理任务个数</param>
        </member>
        <member name="M:ESPlus.Advanced.IAdvancedController.GetPortListenerState">
            <summary>
            获取监听器的状态。
            </summary>        
        </member>
        <member name="T:ESPlus.Advanced.BaseOptions">
            <summary>
            客户端和服务端的公共设置。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.WriteTimeoutInSecs">
            <summary>
            写超时。单位：秒。客户端默认值：60。服务端默认值：0。0表示不设定超时。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.SocketSendBuffSize">
            <summary>
            发送缓冲区的大小。默认值：64K。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.SocketReceiveBuffSize">
            <summary>
            接收缓冲区的大小。默认值：64K。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.TempFile4ResumedTTL">
            <summary>
            用于续传的临时文件的最大生存期，单位：秒。默认值：300。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.UseWorkThreadPool">
            <summary>
            框架的内部事务（如文件传送）是否使用线程池中的线程？默认值：true。       
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.CheckFileZeroSpeedSpanInSecs">
            <summary>
            检测0速度的时间间隔，单位：秒。默认值20。设置为0，表示关闭0速度检测。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.CheckResponseTTL4Query">
            <summary>
            是否开启Query同步调用机制的回复生存期检查？默认值true。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.BaseOptions.UncompletedSendingCount4Busy">
            <summary>
            当通道上尚未发送完成的消息个数大于该值时，判定通道为繁忙（配合发送方法的ActionTypeOnChannelIsBusy参数使用）？默认值为：0。（小于0，表示始终判定为不繁忙）
            </summary>
        </member>
        <member name="T:ESPlus.Advanced.AdvancedOptions">
            <summary>
            客户端高级设置。如果是要Set某个属性，则必须在IRapidPassiveEngine的Initialize方法之前。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.AdvancedOptions.P2PEnabled">
            <summary>
            是否开启P2P。默认值true。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.AdvancedOptions.AsynMessageQueueEnabled">
            <summary>
            是否开启异步消息队列。默认值true。
            </summary>
        </member>
        <member name="T:ESPlus.Advanced.AdvancedController">
            <summary>
            服务端高级设置、控制器。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.AdvancedController.MaxChannelCacheSize">
            <summary>
            每个通道连接上允许最大的等待发送【包括投递】以及正在发送的消息个数。
            当等待发送以及正在发送的消息个数超过该值时，将关闭对应的连接。如果设置为0，则表示不作限制。默认值为0。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.AdvancedController.AsynConnectionEvent">
            <summary>
            异步引发连接成功的事件。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.AdvancedController.TcpExpiredSpanInSecs">
            <summary>
            某个TCP连接连上后，如果在ExpiredSpanInSecs时间内仍然没有登录成功，则将关闭该连接。
            如果ExpiredSpanInSecs小于等于0，则不做过期检查。默认值：15
            </summary>
        </member>
        <member name="T:ESPlus.Advanced.CustomizeInfoHandleMode">
            <summary>
            在服务端自定义信息的处理模型。
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.CustomizeInfoHandleMode.IocpDirectly">
            <summary>
            直接在IOCP线程中处理消息。
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.CustomizeInfoHandleMode.TaskQueue">
            <summary>
            将收到的消息先放到任务队列，然后再使用工作者线程（WorkerThread）来处理。
            </summary>
        </member>
        <member name="M:ESPlus.Advanced.IDiagnosticsViewer.GetCustomizeInfoStatistics">
            <summary>
            获取自定义信息处理的统计数据。
            </summary>        
        </member>
        <member name="M:ESPlus.Advanced.IDiagnosticsViewer.GetUncommittedCustomizeInfos">
            <summary>
            获取处理尚未完成的自定义信息。
            </summary>    
        </member>
        <member name="M:ESPlus.Advanced.IDiagnosticsViewer.GetThreadPoolInfo">
            <summary>
            获取线程池信息。
            </summary>        
        </member>
        <member name="F:ESPlus.Advanced.InformationStyle.Common">
            <summary>
            普通信息。信息将被ICustomizeHandler接口的HandleInformation方法处理。
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.InformationStyle.Query">
            <summary>
            同步调用信息，信息将被ICustomizeHandler接口的HandleQuery方法处理。
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.InformationStyle.DirectByRapidEngine">
            <summary>
            通过引擎直接发送的引擎，将被IRapidServerEngine.MessageReceived事件的处理函数处理。
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.InformationStyle.LoginOrQueryBeforeLogin">
            <summary>
            登录请求（对应IBasicHandler的VerifyUser或HandleQueryBeforeLogin方法）
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.InformationStyle.GetGroupmates">
            <summary>
            获取组友请求
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.InformationStyle.GetGroupMembers">
            <summary>
            获取组成员请求
            </summary>
        </member>
        <member name="F:ESPlus.Advanced.InformationStyle.GetFriendsList">
            <summary>
            获取好友列表请求
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.InfoHandleRecord.StartTime">
            <summary>
            将信息提交给ICustomizeHandler处理器的时间。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.InfoHandleRecord.InformationType">
            <summary>
            被处理的信息类型
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.InfoHandleRecord.TimeSpent">
            <summary>
            处理信息所话费的时间（毫秒）。值为-1表示信息尚未处理完成。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.InfoHandleRecordStatistics.InformationType">
            <summary>
            被统计的消息类型。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.InfoHandleRecordStatistics.CallCount">
            <summary>
            收到目标类型消息的总个数。
            </summary>
        </member>
        <member name="P:ESPlus.Advanced.InfoHandleRecordStatistics.ExceptionCount">
            <summary>
            处理目标类型消息抛出异常的个数。
            </summary>
        </member>
        <member name="T:ESPlus.Base.Passive.UserSecurityLogBridge">
            <summary>
            用于将用户的上下线事件记录到用户安全日志。
            </summary>
        </member>
        <member name="T:ESPlus.Base.Server.UserSecurityLogBridge">
            <summary>
            用于将用户的上下线事件记录到用户安全日志（可以是文件、数据库、内存数据库等）。
            </summary>
        </member>
        <member name="T:ESPlus.Core.IPlusContractHelper">
            <summary>
            增强的IContractHelper，增加了创建消息等功能。即可用于服务端、也可用于客户端。
            </summary>
        </member>
        <member name="M:ESPlus.Core.IPlusContractHelper.ParseBody``1(ESFramework.Core.IMessage)">
            <summary>
            解析消息体。
            </summary>
            <typeparam name="TBody">消息体的类型</typeparam>
            <param name="msg">被解析的消息</param>
            <returns>解析得到的消息体对象</returns>
        </member>
        <member name="M:ESPlus.Core.IPlusContractHelper.CreateMessage``1(ESFramework.Core.IMessageHeader,``0)">
            <summary>
            创建消息。实现该方法时，需要根据body的长度来设置header中MessageBodyLength属性。通常给Server端使用。
            </summary>       
        </member>
        <member name="T:ESPlus.Core.StreamMessageHeader">
            <summary>
            常用的基于流的消息头定义。固定长度36 ，LoginID允许最大长度默认为11。MessageType取值为0~65535
            </summary>
        </member>
        <member name="M:ESPlus.Core.StreamMessageHeader.SetMaxLengthOfUserID(System.Byte)">
            <summary>
            设置LoginID（包括GroupID）的最大长度(不能超过255)。注意，客户端与服务端要统一设置。
            </summary>  
        </member>
        <member name="T:ESPlus.Core.StreamPlusContractHelper">
            <summary>
            针对ESPlus.Core.StreamMessageHeader定制的服务端和客户端可以共用的ContractHelper。
            基于流协议，消息体TBody如果是从BaseSerializeContract继承（还要加上Serializable标签），则采用BaseSerializeContract序列化；
            否则使用更高效的ESPlus.Serialization.ICompactSerializer序列化（由StreamContratAttribute指示采用CompactPropertySerializer/CompactFieldSerializer，如果没有标记StreamContratAttribute，则默认采用CompactPropertySerializer）。   
            如果消息体中包含ICompactSerializer不支持的或无法正确序列化的类型(如Font，其没有默认Ctor)，则可使用BaseSerializeContract方法。
            最后修正：2010.05.31
            </summary>
        </member>
        <member name="T:ESPlus.Core.BaseMessageTypeRoom">
            <summary>
            具体的消息类型空间的基类。具体的实现类只需要加入具体的MessageTypes和PushKeyList    
            </summary>
        </member>
        <member name="P:ESPlus.Core.BaseMessageTypeRoom.StartKey">
            <summary>
            当前消息类型空间的起始值。
            </summary>
        </member>
        <member name="T:ESPlus.Core.IMessageTypeRoom">
            <summary>
            消息类型空间，用于定义一组相同性质的消息类型，比如所有的FTP消息类型。 
            zhuweisky 2006.04
            </summary>
        </member>
        <member name="M:ESPlus.Core.IMessageTypeRoom.Initialize">
            <summary>
            依据StartKey的设置，初始化各个key的值。注意：在Initialize之前，KeyScope/KeyScopeStr/PushKeyList属性和Contains方法的返回都是不正确的。
            </summary>
        </member>
        <member name="M:ESPlus.Core.IMessageTypeRoom.Contains(System.Int32)">
            <summary>
            是否包含指定的消息类型。
            </summary>       
        </member>
        <member name="P:ESPlus.Core.IMessageTypeRoom.StartKey">
            <summary>
            当前消息类型空间的起始值。
            </summary>
        </member>
        <member name="P:ESPlus.Core.IMessageTypeRoom.MaxKeyValue">
            <summary>
            初始化完成后，即可获取最大的值。
            </summary>
        </member>
        <member name="P:ESPlus.Core.IMessageTypeRoom.PushKeyList">
            <summary>
            指示客户端需要将哪些类型的消息Push到IResponseManager
            </summary>
        </member>
        <member name="T:ESPlus.Core.IServiceTypeNameMatcher">
            <summary>
            根据消息的类型获取其对应的名称。
            ESPlus.Core.MessageTypeRoomManager提供了一个实现。
            </summary>
        </member>
        <member name="M:ESPlus.Core.IServiceTypeNameMatcher.GetServiceName(System.Int32)">
            <summary>
            根据消息的类型获取其对应的名称。
            </summary>
            <param name="messageType">消息的类型</param>
            <returns>类型的名称</returns>
        </member>
        <member name="T:ESPlus.Core.DefaultServiceTypeNameMatcher">
            <summary>
            直接将消息类型的数值作为类型的名称返回。
            </summary>
        </member>
        <member name="T:ESPlus.Core.MessageTypeRoomManager">
            <summary>
            将所有的IMessageTypeRoom整合起来，检查MessageType是否冲突，并且将PushKey注入到SimplePassiveProcesser。另外，MessageTypeRoomManager实现了IServiceKeyNameMatcher接口。    
            </summary>
        </member>
        <member name="M:ESPlus.Core.MessageTypeRoomManager.GetServiceName(System.Int32)">
            <summary>
            GetServiceName 通过消息类型获取服务名称
            </summary>		
        </member>
        <member name="T:ESPlus.FileTransceiver.FilePackage">
            <summary>
            文件分割成包之后被传输的协议。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FilePackage.ProjectID">
            <summary>
            ProjectID 用于标志Package属于同一个文件，由"SenderID_随机数"构成	
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FilePackage.Index">
            <summary>
            第一个Package的Index为1。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.PackageType">
            <summary>
            传送项目中数据包的类型
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.PackageType.FileTransferingPackage">
            <summary>
            单个文件传送的数据包。或者，文件夹传送项目中某个文件的数据包。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.PackageType.FoldTransferingNextFile">
            <summary>
            文件夹传送中的命令 -- 即将传送下一个文件。对应的Data应解析为FoldTransferingNextFileInfo
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.PackageType.NewChildFolder">
            <summary>
            文件夹传送中的命令 -- 子文件夹。对应的Data使用UTF-8解析为Folder Name
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.PackageType.Finished">
            <summary>
            全部传送完成
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FoldTransferingNextFileInfo.RelativeFilePath">
            <summary>
            要发送的文件相对于文件夹的路径
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.IFilePackageSender">
            <summary>
            IFilePackageMessageSender 用于将FilePackage发送出去。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFilePackageSender.GetSendingCount">
            <summary>
            获取尚未发送完成的消息个数。
            </summary>		
        </member>
        <member name="T:ESPlus.FileTransceiver.SendingFileParas">
            <summary>
            发送文件的参数。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.SendingFileParas.#ctor(System.Int32,System.Int32)">
            <summary>
            Ctor。
            </summary>
            <param name="packageSize">文件数据包的大小。</param>
            <param name="sendSpanInMSecs">相邻的两个文件数据包之间的发送间隔。单位，毫秒。</param>       
        </member>
        <member name="P:ESPlus.FileTransceiver.SendingFileParas.SendingSpanInMSecs">
            <summary>
            相邻的两个文件数据包之间的发送间隔。单位，毫秒。默认值0。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.SendingFileParas.FilePackageSize">
            <summary>
            文件数据包的大小。默认2048。网络环境越好，则数据包可以越大。比如，局网内部文件传输可以设为204800。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.FileTransferingProgress">
            <summary>
            文件传送的进度。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileTransferingProgress.ProjectID">
            <summary>
            传送项目的编号。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileTransferingProgress.Total">
            <summary>
            总字节数。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileTransferingProgress.Transfered">
            <summary>
            已传送字节数。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.TransferingProject">
            <summary>
            文件（夹）传送项目。
            </summary>	
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.IsFolder">
            <summary>
            是否传送的为文件夹。false表示传送的为文件，true表示传送的为文件夹。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.IsSender">
            <summary>
            表示当前用户是发送者还是接收接收者。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.ProjectID">
            <summary>
            文件传送项目的编号。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.TotalSize">
            <summary>
            要传送的文件（夹）的总大小
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.OriginPath">
            <summary>
            发送方发送的文件（夹）的全路径。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.OriginStream">
            <summary>
            发送方要发送的流。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.OriginLastUpdateTime">
            <summary>
            发送方发送的文件（夹）的最后修改日期。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.LocalSavePath">
            <summary>
            接收方保存文件（夹）的路径。发送方忽略该属性。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.LocalSaveStream">
            <summary>
            接收方保存文件的流。发送方忽略该属性。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.ProjectName">
            <summary>
            被传送的文件（夹）的名称
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.AccepterID">
            <summary>
            接收者的UserID
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.SenderID">
            <summary>
             发送者的UserID
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.DestUserID">
            <summary>
            对方的UserID
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.TimeStarted">
            <summary>
            传送开始时间
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.SendingFileParas">
            <summary>
            如果是发送方，可以设置该属性以临时保存发送参数；如果为null，则表示采用IFileSenderManager的默认设置。接收方将忽略该属性。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.IsTransfering">
            <summary>
            文件（夹）是否已经开始传送了？
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.Comment">
            <summary>
            备注，初始值为BeginSendFile方法的comment参数的值。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.FileTransDisrupttedCause">
            <summary>
            拒绝接收文件的原因、或者文件传送中断的原因的详细描述。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.LocalTag">
            <summary>
            保存在本地内存中的tag。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.TransferingProject.DestClientType">
            <summary>
            对方的设备类型。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ITransferingProject.ProjectID">
            <summary>
            文件传送项目的编号。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ITransferingProject.ProjectName">
            <summary>
            被传送的文件（夹）的名称
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ITransferingProject.TotalSize">
            <summary>
            要传送的文件（夹）的总大小
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ITransferingProject.Sender">
            <summary>
             发送者的UserID
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ITransferingProject.Receiver">
            <summary>
             接收者的UserID
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ITransferingProject.IsSender">
            <summary>
            表示当前用户是发送者还是接收接收者。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.IFileTransferingEvents">
            <summary>
            与文件传送相关的事件。
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.IFileTransferingEvents.FileTransStarted">
            <summary>
            当某个文件开始传送时，触发该事件。
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.IFileTransferingEvents.FileResumedTransStarted">
            <summary>
            当某个文件续传开始时，触发该事件。（将不再触发FileTransStarted事件）
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.IFileTransferingEvents.FileTransProgress">
            <summary>
            文件传送的进度。参数为projectID（文件传送项目的编号） ,total（文件大小） ,transfered（已传送字节数）
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.IFileTransferingEvents.FileTransDisruptted">
            <summary>
            文件传送中断时，触发该事件。参数：TransferingProject - FileTransDisrupttedType - string
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.IFileTransferingEvents.FileTransCompleted">
            <summary>
            文件传送完成时，触发该事件。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.FileTransDisrupttedType">
            <summary>
            文件传输中断的原因。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.RejectAccepting">
            <summary>
            接收方拒绝接收
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.ActiveCancel">
            <summary>
            自己主动取消
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.DestCancel">
            <summary>
            对方取消
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.DestOffline">
            <summary>
            对方掉线
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.ReliableP2PChannelClosed">
            <summary>
            与对方的可靠的P2P通道关闭
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.SelfOffline">
            <summary>
            网络中断、自己掉线
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.InnerError">
            <summary>
            自己系统内部错误，如文件读取失败等
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.DestInnerError">
            <summary>
            对方系统内部错误，如文件读取失败等
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.NetworkSpeedSlow">
            <summary>
            网速太慢。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.ReadFileBlocked">
            <summary>
            【发送方】读取文件卡住。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.SendThreadNotStarted">
            <summary>
            发送线程没有启动。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.Timeout4FirstPackage">
            <summary>
            【接收方】在一定的时间内，针对传送的目标文件，第一个文件块都尚未收到。
            真正原因可能是：（1）网络太慢；（2）发送方ReadFileBlocked 或 SendThreadNotStarted。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.AnswerFileRequestOnOtherDevice">
            <summary>
            已经在其它设备上回应了对方文件传送请求。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileTransDisrupttedType.UploadPausedByOffline">
            <summary>
            因自己掉线导致上传文件中断，等网络恢复后将自动重新上传
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.ISendingFileParasDecider.GetSendingFileParas(System.String,ESFramework.ClientType)">
            <summary>
            将文件发送给目标用户时，采用的数据包的大小和发送时间间隔。
            </summary>
            <param name="accepterID">文件接收者的UserID</param>        
        </member>
        <member name="P:ESPlus.FileTransceiver.DefaultSendingFileParasDecider.FilePackageSize">
            <summary>
            文件数据包的大小。默认2048。网络环境越好，则数据包可以越大。比如，局网内部文件传输可以设为204800。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.PassiveFilePackageSender">
            <summary>
            用于Client向Server发送文件包(可能是通过Server转发)
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.DirectoryReceiver">
            <summary>
            文件夹接收器。实现IFileReceiver接口。将文件夹整体当作一个文件来接收
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.DirectoryReceiver.CurrentTempFilePath">
            <summary>
            临时文件路径。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.DirectoryReceiver.DisrupttedFileRelativePath">
            <summary>
            被中断传送的文件的相对路径
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.DirectoryReceiver.DisrupttedFileSize">
            <summary>
            该属性仅用于文件夹传送。被中断传送的文件的大小。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.DirectoryReceiver.DisrupttedFileReceivedCount">
            <summary>
            该属性仅用于文件夹传送。被中断传送的文件已接收的字节数
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.DirectoryReceiver.SingleFileRevFinished">
            <summary>
            当文件夹中的某个文件接收完成时，触发该事件。参数 - projectID
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.FileReceiver">
            <summary>
            单个文件接收器。实现IFileReceiver接口。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileReceiver.CurrentTempFilePath">
            <summary>
            临时文件路径。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileReceiver.callReceiveCount">
            <summary>
            已接收FilePackage的个数
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.FileReceiverManager">
            <summary>
            IFileReceiverManager 参考实现。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileReceiverManager.TempFileExtendName">
            <summary>
            当文件未接收完时，临时文件的扩展名。默认为".tmpe$"
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.FileReceiverManager.SingleFileRevFinished">
            <summary>
            在接收文件夹的情况下，当文件夹中的某个文件接收完成时，触发该事件。参数 - projectID
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.IFileReceiver">
            <summary>
            用于将接收到的文件包写入同一个文件中。一个IFileReceiver实例对应一个要接收的文件（夹）。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiver.CheckZeroSpeed">
            <summary>
            每隔N秒调用一次，如果在这段时间内，接收的字节数为0，则将触发FileTransDisruptted事件，参数为 NetworkSpeedSlow。2015.02.04
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.IFileReceiver.CurrentTempFilePath">
            <summary>
            被中断传送的文件的临时路径
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.IFileReceiverManager">
            <summary>
            管理所有的FileReceiver，处理所有接收到的与文件相关的消息。
            </summary>
        </member>
        <member name="E:ESPlus.FileTransceiver.IFileReceiverManager.SingleFileRevFinished">
            <summary>
            在接收文件夹的情况下，当文件夹中的某个文件接收完成时，触发该事件。参数 - projectID。
            框架必须将该事件传递给发送方的IFileSenderManager的OnSingleFileRevFinished方法，如此发送方才会启动发送下一个文件。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.MappingResumedFile4Receive(ESPlus.FileTransceiver.TransferingProject)">
            <summary>
            在接收文件之前，寻找是否存在续传匹配项。如果FileResumingEnabled为false，则将始终返回null。
            </summary>        
        </member>
        <member name="P:ESPlus.FileTransceiver.IFileReceiverManager.TTL4ResumedFileItem">
            <summary>
            当一个续传项超过多长时间没被使用，则将其移除，同时删除对应的临时文件（夹）。单位：秒。默认值：300。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.AddNotConfirmedFile(ESPlus.FileTransceiver.TransferingProject)">
            <summary>
            保存还未确认接收或拒绝的项目。
            </summary>        
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.RemoveNotConfirmedFile(System.String,ESPlus.FileTransceiver.FileTransDisrupttedType)">
            <summary>
            删除还未确认接收或拒绝的项目。
            </summary>        
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.GetNotConfirmedFile(System.String)">
            <summary>
            获取还未确认接收或拒绝的项目。
            </summary> 
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.ReadyToAcceptFile(ESPlus.FileTransceiver.TransferingProject,ESPlus.FileTransceiver.ResumedProjectItem,System.Boolean)">
            <summary>
            在回复对方同意接受文件之前调用。
            </summary>
            <param name="project">接收文件的信息</param>
            <param name="resumedFileItem">续传对象，如果为null，则表示没有续传项</param>     
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.HandleFilePackage(System.String,ESPlus.FileTransceiver.FilePackage)">
            <summary>
            将从网络接收到的文件数据包交给对应的文件接收器去处理。
            </summary>      
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.CancelFileReceiving(System.String,ESPlus.FileTransceiver.FileTransDisrupttedType,System.String)">
            <summary>
            取消文件接收（主动、被动）
            </summary>		
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.OnSelfOffline">
            <summary>
            自己掉线。将关闭所有的文件接收器。 
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.OnDestDeviceOffline(System.String,ESFramework.ClientType)">
            <summary>
            目标用户的某设备掉线，将关闭与该用户相关的文件接收器。
            </summary>        
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.OnReliableP2PChannelClosed(System.String)">
            <summary>
            与目标用户之间的可靠P2P通道关闭，将关闭与该用户相关的文件接收器。
            </summary>        
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.GetFileInfo(System.String)">
            <summary>
            获取正在接收的或还未被回复的文件传送项目。
            </summary>      
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.GetAllReceivingFileIDs(System.String)">
            <summary>
            获取发送者为senderID的正在传送的文件ID。
            </summary>
            <param name="senderID">发送者的UserID。如果为null，则表示要获取所有正在接收的文件ID</param>
            <returns>文件ID的列表</returns>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileReceiverManager.CheckZeroSpeed">
            <summary>
            每隔N秒调用一次，如果在这段时间内，某个传送项目接收的字节数为0，则该项目将触发FileTransDisruptted事件，参数为 NetworkSpeedSlow。2015.02.04
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.IResumedProjectManager">
            <summary>
            文件续传项目管理器。
            用于在接收方管理那些传送中断而可能被续传的文件。
            (1)当文件接收过程中因任何原因中断时，将其添加到ResumedFileManager中。
            (2)当发送方发送文件给接收方时，接收方从ResumedFileManager寻找匹配项，如果找到，则询问接收者：续传/另存/取消；如果找不到，则询问接收者：另存/取消。
            (3)当能续传，而接收者选择了另存或取消，则从ResumedFileManager中移除匹配项，并删除本地临时文件。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.IResumedProjectManager.TTL4ResumedFileItem">
            <summary>
            当一个续传项超过多长时间没被使用，则将其移除，同时删除对应的临时文件。单位：秒。默认值：300。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IResumedProjectManager.Mapping4Receive(ESPlus.FileTransceiver.TransferingProject)">
            <summary>
            当接收一个文件之前，先看能否找到续传的匹配项(同时判断临时文件是否存在)。如果没有匹配，则返回null。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IResumedProjectManager.Remove(ESPlus.FileTransceiver.ResumedProjectItem,System.Boolean)">
            <summary>
            移除续传项。
            </summary>
            <param name="resumedFileItem">要移除的续传项</param>
            <param name="deleteTempFile">是否同时删除临时文件</param>
        </member>
        <member name="T:ESPlus.FileTransceiver.EmptyResumedFileManager">
            <summary>
            IResumedFileManager接口的null object模式实现。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.ResumedProjectManager">
            <summary>
            用于在接收方管理那些传送中断而可能被续传的文件（夹）。
            (1)当文件（夹）接收过程中因任何原因中断时，将其添加到ResumedFileManager中。
            (2)当发送方发送文件（夹）给接收方时，接收方从ResumedFileManager寻找匹配项，如果找到，则询问接收者：续传/另存/取消；如果找不到，则询问接收者：另存/取消。
            (3)当能续传，而接收者选择了另存或取消，则从ResumedFileManager中移除匹配项，并删除本地临时文件（夹）。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectManager.TTL4ResumedFileItem">
            <summary>
            当一个续传项超过多长时间没被使用，则将其移除，同时删除对应的临时文件（夹）。单位：秒。默认值：300。
            如果值小于等于0，表示不使用续传功能。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.ResumedProjectManager.Remove(ESPlus.FileTransceiver.ResumedProjectItem,System.Boolean)">
            <summary>
            移除续传项。
            </summary>
            <param name="resumedFileItem">要移除的续传项</param>
            <param name="deleteTempFile">是否同时删除临时文件（夹）</param>
        </member>
        <member name="M:ESPlus.FileTransceiver.ResumedProjectManager.Mapping4Receive(ESPlus.FileTransceiver.TransferingProject)">
            <summary>
            当接收一个文件（夹）之前，先看能否找到续传的匹配项(同时判断临时文件（夹）是否存在)。如果没有匹配，则返回null。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.ResumedProjectItem">
            <summary>
            有可能被续传的项目。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.ResumedProjectItem.#ctor(System.String,System.String,System.UInt64,System.DateTime,System.String,System.String,System.UInt64)">
            <summary>
            单个文件续传
            </summary>       
        </member>
        <member name="M:ESPlus.FileTransceiver.ResumedProjectItem.#ctor(System.String,System.String,System.UInt64,System.DateTime,System.String,System.String,System.UInt64,System.String,System.UInt64,System.UInt64)">
            <summary>
            文件夹续传
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.DisrupttedFileRelativePath">
            <summary>
            该属性仅用于文件夹传送。被中断传送的文件的相对路径。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.DisrupttedFileSize">
            <summary>
            该属性仅用于文件夹传送。被中断传送的文件的大小。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.DisrupttedFileReceivedCount">
            <summary>
            该属性仅用于文件夹传送。被中断传送的文件已接收的字节数
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.SenderID">
            <summary>
            发送者的ID。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.OriginPath">
            <summary>
            发送方发送的文件（夹）的全路径。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.OriginSize">
            <summary>
            发送方发送的文件（夹）的大小。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.OriginLastUpdateTime">
            <summary>
            发送方发送的文件（夹）的最后修改日期。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.LocalTempFileSavePath">
            <summary>
            接收的中断的临时文件的存储路径
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.LocalSavePath">
            <summary>
            接收的文件（夹）存储路径
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.ReceivedCount">
            <summary>
            已经接收了多少字节数。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.ResumedProjectItem.DisrupttedTime">
            <summary>
            接收中断的时间。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.StreamReceiver">
            <summary>
            单个文件接收器。实现IFileReceiver接口。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.StreamReceiver.CurrentTempFilePath">
            <summary>
            临时文件路径。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.StreamReceiver.callReceiveCount">
            <summary>
            已接收FilePackage的个数
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.DirectorySender">
            <summary>
            文件夹发送器。实现IFileSender接口。将整个文件夹当作一个文件来传送。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.DirectorySender.FileReadBufferSize">
            <summary>
            读取文件的缓冲区的大小，默认值为1M。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.DirectorySender.OnSingleFileRevFinished">
            <summary>
            当接收方在某个文件接收完成时（IFileReceiverManager的SingleFileRevFinished事件），发送方将调用该方法，以启动发送下一个文件。
            </summary>      
        </member>
        <member name="T:ESPlus.FileTransceiver.FileSender">
            <summary>
            单个文件发送器。实现IFileSender接口。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileSender.FileReadBufferSize">
            <summary>
            读取文件的缓冲区的大小，默认值为1M。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.FileSenderManager">
            <summary>
            用于管理所有的文件发送操作。
            可以用于服务端和客户端，如果在服务端使用，则不需要设置MessageTransceiver属性；如果在客户端使用，则不需要设置RegularSender属性。
            </summary>
        </member>
        <member name="F:ESPlus.FileTransceiver.FileSenderManager.autoReUploadManager">
            <summary>
            当上传文件到服务器因为连接断开而中断时，等网络恢复后是否自动重新上传
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileSenderManager.MessageTransceiver">
            <summary>
            MessageTransceiver 如果在服务端使用FileSenderManager，则不需要设置该属性。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileSenderManager.RegularSender">
            <summary>
            RegularSender 如果在客户端使用FileSenderManager，则不需要设置该属性。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileSenderManager.FileReadBufferSize">
            <summary>
            读取文件的缓冲区的大小，默认值为1024*1024。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileSenderManager.UseInClient">
            <summary>
            UseInClient 如果为true表示在客户端使用，为false表示在服务器端使用。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.FileSenderManager.AutoReUploadFile">
            <summary>
            当上传文件到服务器因为连接断开而中断时，等网络恢复后是否自动重新上传？
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.IFileSender">
            <summary>
            在后台线程中将指定的文件分包后发送出去。一个IFileSender实例对应一个要发送的文件（夹）。
            zhuweisky 2006.02.23
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSender.CheckZeroSpeed">
            <summary>
            每隔N秒调用一次，如果在这段时间内，发送的字节数为0，则将触发FileTransDisruptted事件，参数为 NetworkSpeedSlow。2015.02.04
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.IFileSenderManager">
            <summary>
            管理所有的FileSender，并且跟踪所有正在发送和即将发送的FileSender和文件。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.PickAutoReUploadFiles">
            <summary>
            网络恢复后获取要重新上次的项目列表？        
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.IFileSenderManager.AutoReUploadFile">
            <summary>
            当上传文件到服务器因为连接断开而中断时，等网络恢复后是否自动重新上传？ 
            默认值：true。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.IFileSenderManager.FileReadBufferSize">
            <summary>
            读取文件的缓冲区的大小。默认值为1024*1024。该属性的值应该至少要大于或等于FilePackageSize。
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.Initialize(System.String,System.Int32)">
            <summary>
            初始化管理器。
            </summary>
            <param name="curUserID">当前登陆的用户ID</param>
            <param name="filePackageMessageType">文件数据包的消息类型</param>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.GetFileInfo(System.String)">
            <summary>
            获取正在发送的或还未被接收方回复的文件传送项目。
            </summary>   
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.GetAllSendingFileIDs(System.String)">
            <summary>
            获取接收者为accepterID的正在发送的文件ID。
            </summary>
            <param name="accepterID">接收者的UserID。如果为null，则表示要获取所有正在发送的文件ID</param>
            <returns>文件ID的列表</returns>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.ReadyToSendFile(System.String,System.String,System.Boolean,System.UInt64,System.DateTime,System.String,ESPlus.FileTransceiver.SendingFileParas,System.String)">
            <summary>
            在询问对方是否接受文件（夹）之前调用以进行注册。
            </summary>
            <param name="accepterID">接收文件的用户ID</param>
            <param name="filePath">被发送文件的路径</param>
            <param name="isFolder">false表示传送文件；true表示传送文件夹</param>
            <param name="totalSize">文件（夹）的大小</param>
            <param name="lastUpdateTime">被发送文件的最后一次更新时间</param>
            <param name="projectID">文件传送项目的编号</param>       
            <param name="paras">发送参数设定。传入null，表示采用IFileSenderManager的默认设置。</param>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.ReadyToSendFile(System.String,System.IO.Stream,System.String,System.UInt64,System.String,ESPlus.FileTransceiver.SendingFileParas,System.String)">
            <summary>
            在询问对方是否接受文件（夹）之前调用以进行注册。
            </summary>
            <param name="accepterID">接收文件的用户ID</param>
            <param name="stream">被发送的流</param>   
            <param name="projectName">传送项目名称</param>   
            <param name="totalSize">流的大小</param>       
            <param name="projectID">文件传送项目的编号</param>       
            <param name="paras">发送参数设定。传入null，表示采用IFileSenderManager的默认设置。</param>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.SendFile(System.String,ESFramework.ClientType,System.UInt64,System.String,System.UInt64)">
            <summary>
            开始在后台线程中发送文件（夹）。
            </summary>
            <param name="projectID">文件传送项目的编号</param>
            <param name="receivedCount">文件（夹）整体已经发送了多少字节。</param>	
            <param name="disrupttedFileRelativePath">仅用于文件夹续传，表示将被续传的文件的相对路径</param>
            <param name="disrupttedFileReceivedCount">仅用于文件夹续传，表示将被续传的文件内部起始的偏移</param>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.CancelFileSending(System.String,ESPlus.FileTransceiver.FileTransDisrupttedType,System.String)">
            <summary>
            取消文件的发送（主动，被动）
            </summary>       
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.GetFileSenderState(System.String,System.Int32@,System.Int32@)">
            <summary>
            获取某个文件发送器的状态，包括发送时间间隔（ms）、数据包的大小（字节）。
            </summary>       
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.OnSelfOffline">
            <summary>
            自己掉线。将关闭所有的文件（夹）发送器。 
            </summary>
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.OnDestDeviceOffline(System.String,ESFramework.ClientType)">
            <summary>
            目标用户的某设备掉线，将关闭与该用户相关的文件发送器。
            </summary>        
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.OnReliableP2PChannelClosed(System.String)">
            <summary>
            与目标用户之间的可靠P2P通道关闭，将关闭与该用户相关的文件发送器。
            </summary>        
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.OnSingleFileRevFinished(System.String)">
            <summary>
            在接收文件夹的情况下，当接收方在某个文件接收完成时（IFileReceiverManager的SingleFileRevFinished事件），必须通知发送方，发送方将调用该方法，如此发送方才会启动发送下一个文件。
            </summary>      
        </member>
        <member name="M:ESPlus.FileTransceiver.IFileSenderManager.CheckZeroSpeed">
            <summary>
            每隔N秒调用一次，如果在这段时间内，某个传送项目发送的字节数为0，则该项目将触发FileTransDisruptted事件，参数为 NetworkSpeedSlow。2015.02.04
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.StreamSender">
            <summary>
            单个文件发送器。实现IFileSender接口。
            </summary>
        </member>
        <member name="P:ESPlus.FileTransceiver.StreamSender.FileReadBufferSize">
            <summary>
            读取文件的缓冲区的大小，默认值为1M。
            </summary>
        </member>
        <member name="T:ESPlus.FileTransceiver.ServerFilePackageSender">
            <summary>
            用于Server向Client发送文件包
            </summary>
        </member>
        <member name="T:ESPlus.Rapid.IP2PServer">
            <summary>
            用于协助P2P打洞的P2P服务器。
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.IP2PServer.Initialize(System.Int32)">
            <summary>
            初始化P2P服务器。
            </summary>
            <param name="udpPort">监听的UDP端口</param>       
        </member>
        <member name="T:ESPlus.Rapid.IRapidEngine">
            <summary>
            Rapid 引擎基础接口。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidEngine.LogFilePath">
            <summary>
            记录ESFramework日志的文件的路径，默认值为在运行目录下的ESFrameworkLog.txt文件。如果不需要写日志文件，则赋值为null。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidEngine.Logger">
            <summary>
            日志记录器。如果被赋非null值，则LogFilePath属性将无效。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidEngine.SecurityLogEnabled">
            <summary>
            是否记录用户安全日志。默认值为true。
            </summary>
        </member>
        <member name="T:ESPlus.Rapid.IRapidPassiveEngine">
            <summary>
            迅捷的客户端引擎。基于TCP、使用二进制协议。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.CurrentUserID">
            <summary>
            当前登录的用户UserID。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.CurrentClientType">
            <summary>
            当前客户端设备类型。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.Advanced">
            <summary>
            客户端引擎高级控制选项。如果要设置AdvancedOptions的某些属性，必须在调用Initialize方法之前设置才有效。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.IsClosed">
            <summary>
            引擎是否出于关闭状态？（关闭状态：意味着与服务器的连接已经断开，并且所有资源已经释放，也不再进行自动重连，就像未初始化状态一样）
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.IRapidPassiveEngine.ConnectionRebuildStart">
            <summary>
            自动重连开始时，触发此事件。如果重连成功则将重新登录，并触发RelogonCompleted事件。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.IRapidPassiveEngine.ConnectionInterrupted">
            <summary>
            当客户端与服务器的TCP连接断开时，将触发此事件。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.IRapidPassiveEngine.RelogonCompleted">
            <summary>
            当断线重连成功时，会自动登录服务器验证用户账号密码，并触发此事件。如果验证失败，则与服务器的连接将会断开，且后续不会再自动重连。事件参数表明了登录验证的结果。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.IRapidPassiveEngine.MessageReceived">
            <summary>
            当接收到来自服务器或其它用户的消息时，触发此事件。
            事件参数：sourceUserID - ClientType - informationType - message - tag 。
            如果消息来自服务器，则sourceUserID为null。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.IRapidPassiveEngine.EchoMessageReceived">
            <summary>
            当（当前用户在其它客户端设备上发送了消息）时，触发此事件。
            事件参数：clientType - destUserID - informationType - message - tag 。
            如果原消息的接收者为服务器，则destUserID为null。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.ServerAddress">
            <summary>
            当前引擎所连接的服务器的地址。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.Connected">
            <summary>
            当前是否处于连接状态。如果为true，则表示不仅TCP连接正常，而且是登录成功的状态。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.ChannelIsBusy">
            <summary>
            与服务器之间的通道是否处于繁忙状态？
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.SystemToken">
            <summary>
            系统标志。引擎在初始化时会提交给服务器验证客户端是否是正确的系统。（也可以被借用于登陆增强验证）。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.HeartBeatSpanInSecs">
            <summary>
            每隔多长时间（秒）发送一次心跳消息。如果小于等于0，表示不发送定时心跳。默认值为10秒。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.WaitResponseTimeoutInSecs">
            <summary>
            当通过ICustomizeOutter进行同步调用时，等待回复的最长时间。如果小于等于0，表示一直阻塞调用线程直到等到回复为止。默认值为30秒。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.Sock5ProxyInfo">
            <summary>
            Sock5代理服务器信息。如果不需要代理，则设置为null。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.P2PServerAddress">
            <summary>
            P2P服务器的地址。默认值为null。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            如果服务端引擎开启了UseAsP2PServer，则可以不设置该属性。如果同时又设置该属性为非null值，则以设置值为准。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.AutoReconnect">
            <summary>
            掉线后，是否自动重连。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.BasicOutter">
            <summary>
            该接口用于向服务器发送基本的请求，如获取自己的IP、获取所有在线用户列表等等。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.CustomizeOutter">
            <summary>
            该接口用于向服务器或其它在线用户发送自定义信息。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.FileOutter">
            <summary>
            该接口用于向服务器或其它在线用户发送文件。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.ContactsOutter">
            <summary>
            该接口用于客户端发送与联系人操作相关的信息和广播。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidPassiveEngine.DynamicGroupOutter">
            <summary>
            该接口用于进行动态组的相关操作，或监听动态组的相关事件。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.SendMessage(System.String,System.Int32,System.Byte[],System.String,System.Boolean,ESFramework.IProgressObserver)">
            <summary>
            向服务器或其它在线用户发送消息。如果其它用户不在线，消息将被丢弃。
            </summary>
            <param name="targetUserID">接收者的UserID，如果为服务器，则传入null</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>
            <param name="toOtherClientOfMine">是否发送给我的其它在线设备</param>
            <param name="observer">消息发送进度的观察者</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.SendMessage(System.String,System.Int32,System.Byte[],System.String,System.Int32,System.Boolean,ESFramework.IProgressObserver)">
            <summary>
            向服务器或其它在线用户发送消息。如果其它用户不在线，消息将被丢弃。
            </summary>
            <param name="targetUserID">接收者的UserID，如果为服务器，则传入null</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>
            <param name="fragmentSize">消息将被分块发送，分块的大小</param>
            <param name="toOtherClientOfMine">是否发送给我的其它在线设备</param>
            <param name="observer">消息发送进度的观察者</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.SendMessage(System.String,System.Int32,System.Byte[],System.String,System.Int32,ESPlus.Application.ResultHandler,System.Object,System.Boolean)">
            <summary>
            向服务器或其它在线用户异步发送消息（当前调用线程立即返回）。如果其它用户不在线，消息将被丢弃。
            </summary>
            <param name="targetUserID">接收者的UserID，如果为服务器，则传入null</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>
            <param name="fragmentSize">消息将被分块发送，分块的大小</param>
            <param name="handler">当发送任务结束时，将回调该处理器</param>
            <param name="handlerTag">将回传给ResultHandler的参数</param>
            <param name="toOtherClientOfMine">是否发送给我的其它在线设备</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.SendMessageToSpecialDevice(System.String,ESFramework.ClientType,System.Int32,System.Byte[],System.String)">
            <summary>
            向在线用户的指定设备发送消息。如果目标用户设备不在线，消息将被丢弃。
            </summary>
            <param name="targetUserID">接收者的UserID</param>
            <param name="targetType">接收者的设备类型</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>      
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.Initialize(System.String,System.String,System.String,System.Int32,ESPlus.Application.CustomizeInfo.ICustomizeHandler)">
            <summary>
            完成客户端引擎的初始化，与服务器建立TCP连接，连接成功后立即验证用户密码。如果连接失败，则抛出异常。
            </summary>
            <param name="userID">当前登录的用户ID，由数字和字母组成，最大长度为10</param>
            <param name="logonPassword">用户登陆密码。</param>
            <param name="serverIP">服务器的IP地址。</param>
            <param name="serverPort">服务器的端口。</param>       
            <param name="customizeHandler">自定义处理器，用于处理服务器或其它用户发送过来的消息</param>             
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.Close">
            <summary>
            关闭并释放客户端通信引擎。
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.CloseConnection(System.Boolean)">
            <summary>
            主动关闭与ESFramework服务器的连接,将引发自动重连。
            </summary>
            <param name="reconnectNow">是否立即重连？</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidPassiveEngine.QueryBeforeLogin(System.String,System.Int32,System.Int32,System.String)">
            <summary>
            在登录之前，向服务器发送请求。将被服务端的IBasicHandler的HandleQueryBeforeLogin方法处理。
            </summary>
            <param name="serverIP">ESFramework服务器IP</param>
            <param name="serverPort">ESFramework服务器端口</param>
            <param name="queryType">请求类型</param>
            <param name="query">请求内容</param>
            <returns>回复</returns>
        </member>
        <member name="T:ESPlus.Rapid.IRapidServerEngine">
            <summary>
            迅捷的服务端引擎。基于TCP、使用二进制协议。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.IRapidServerEngine.MessageReceived">
            <summary>
            当接收到来自客户端的消息时，触发此事件。
            事件参数：sourceUserID - sourceType - informationType - message - tag 。       
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.Advanced">
            <summary>
            服务端引擎高级控制器。（如果要设置AdvancedController的某些属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.ContactsManager">
            <summary>
            【可选】如果需要支持联系人，则必须设置该属性。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.WssOptions">
            <summary>
            【可选】如果需要支持WSS（SSL加密的WebSocket），则必须设置该属性。默认值为null，表示不启用WSS。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.IPAddressBinding">
            <summary>
            通过哪个IP地址提供服务。如果设为null，则表示绑定本地所有IP。默认值为null。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.HeartbeatTimeoutInSecs">
            <summary>
            心跳超时间隔（秒）。即服务端多久没有收到客户端的心跳消息，就视客户端为超时掉线。默认值为30秒。如果设置小于等于0，则表示不做心跳检查。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.WaitResponseTimeoutInSecs">
            <summary>
            当通过ICustomizeController.QueryClient方法进行同步调用时，等待回复的最长时间。如果小于等于0，表示一直阻塞调用线程直到等到回复为止。默认值为30秒。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.AutoRespondHeartBeat">
            <summary>
            是否自动回复客户端发过来的心跳消息（将心跳消息原封不动地发回客户端）。默认值为false。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.WriteTimeoutInSecs">
            <summary>
            发送消息的超时，单位：秒。默认值：5秒。如果设置为小于等于0，则表示无限。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.UseAsP2PServer">
            <summary>
            是否同时作为P2P服务器运行。默认值为true（P2P服务器将使用UDP端口，端口号为当前引擎监听的端口号加1）。（如果要set该属性，则必须要在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.WebSocketEnabled">
            <summary>
            是否启用WebSocket支持？
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.ConnectionCount">
            <summary>
            当前在线连接的数量。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.MaxConnectionCount">
            <summary>
            服务器允许最大的同时连接数。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.Port">
            <summary>
            当前监听的端口。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.ServerID">
            <summary>
            服务端实例的唯一编号。该属性用于ESPlatform。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.IsInCluster">
            <summary>
            是否位于群集系统中？
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.UserManager">
            <summary>
            通过此接口，可以获取用户的相关信息以及用户上/下线的事件通知。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.PlatformUserManager">
            <summary>
            平台用户管理器（用于ESPlatform，通常为ASM的远程引用）。可以获取群集中所有在线用户信息。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.BasicController">
            <summary>
            通过此接口，服务端可以将目标用户从服务器中踢出，并关闭其对应的tcp连接。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.CustomizeController">
            <summary>
            通过此接口，服务端可以主动向在线用户发送/投递自定义信息。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.ContactsController">
            <summary>
            通过此接口，服务端可以控制联系人通知和主动向某个组广播信息。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.DynamicGroupController">
            <summary>
            通过此接口，服务端可以操作动态组，或监听动态组的相关事件。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.IRapidServerEngine.SendMessage(System.String,System.Int32,System.Byte[],System.String,System.Nullable{ESFramework.ClientType})">
            <summary>
            向在线用户发送消息。如果目标用户不在线，消息将被丢弃。
            </summary>
            <param name="targetUserID">接收者的UserID</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>
            <param name="clientType">要发送给哪个客户端设备，如果为null，则表示发给所有设备</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidServerEngine.SendMessage(ESFramework.ClientType,System.String,System.Int32,System.Byte[],System.String,System.Nullable{ESFramework.ClientType})">
            <summary>
            向在线用户发送消息。如果目标用户不在线，消息将被丢弃。
            </summary>
            <param name="srcType">当转发客户端的消息时，通过该参数来说明原始消息的设备类型</param>
            <param name="targetUserID">接收者的UserID</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>
            <param name="clientType">要发送给哪个客户端设备，如果为null，则表示发给所有设备</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidServerEngine.SendMessage(System.String,System.Int32,System.Byte[],System.String,System.Int32,System.Nullable{ESFramework.ClientType})">
            <summary>
            向在线用户发送消息。如果目标用户不在线，消息将被丢弃。
            </summary>
            <param name="targetUserID">接收者的UserID</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>
            <param name="fragmentSize">消息将被分块发送，分块的大小</param>
            <param name="clientType">要发送给哪个客户端设备，如果为null，则表示发给所有设备</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidServerEngine.SendMessage(System.String,ESFramework.ClientType,System.Int32,System.Byte[],System.String,System.Int32)">
            <summary>
            向在线用户发送消息。如果目标用户不在线，消息将被丢弃。
            </summary>
            <param name="targetUserID">接收者的UserID</param>
            <param name="exceptClientType">发送给用户时排开这个类型的设备</param>
            <param name="informationType">消息类型</param>
            <param name="message">消息内容</param>
            <param name="tag">附加内容</param>
            <param name="fragmentSize">消息将被分块发送，分块的大小</param>        
        </member>
        <member name="P:ESPlus.Rapid.IRapidServerEngine.FileController">
            <summary>
            通过此接口，服务端可以主动向在线用户发送文件。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.IRapidServerEngine.Initialize(System.Int32,ESPlus.Application.CustomizeInfo.ICustomizeHandler)">
            <summary>
            完成服务端引擎的初始化，并启动服务端引擎。
            </summary>
            <param name="port">用于提供tcp通信服务的端口</param>
            <param name="customizeHandler">服务器通过此接口来处理客户端提交给服务端自定义信息。</param>
        </member>
        <member name="M:ESPlus.Rapid.IRapidServerEngine.Initialize(System.Int32,ESPlus.Application.CustomizeInfo.ICustomizeHandler,ESPlus.Application.Basic.Server.IBasicHandler)">
            <summary>
            完成服务端引擎的初始化，并启动服务端引擎。
            </summary>
            <param name="port">用于提供tcp通信服务的端口</param>
            <param name="customizeHandler">服务器通过此接口来处理客户端提交给服务端自定义信息。</param>
            <param name="basicHandler">用于验证客户端登陆密码。如果不需要验证，则直接传入null。</param>    
        </member>
        <member name="M:ESPlus.Rapid.IRapidServerEngine.Close">
            <summary>
            关闭服务端引擎。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.WssOptions.OnlyWssClient">
            <summary>
            是否所有的客户端都是wss，而没有其它的类型？
            </summary>
        </member>
        <member name="T:ESPlus.Rapid.RapidEngineFactory">
            <summary>
            Rapid引擎工厂。
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.RapidEngineFactory.CreatePassiveEngine">
            <summary>
            创建一个Rapid客户端引擎实例。
            </summary>        
        </member>
        <member name="M:ESPlus.Rapid.RapidEngineFactory.CreateServerEngine">
            <summary>
            创建一个Rapid客户端引擎实例。
            </summary>       
        </member>
        <member name="M:ESPlus.Rapid.RapidEngineFactory.CreateP2PServer">
            <summary>
            创建一个P2P服务器实例。
            </summary>       
        </member>
        <member name="T:ESPlus.Rapid.RapidPassiveEngine">
            <summary>
            迅捷的客户端引擎。基于TCP、使用二进制协议。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.RapidPassiveEngine.ConnectionInterrupted">
            <summary>
            当客户端与服务器的TCP连接断开时，将触发此事件。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.RapidPassiveEngine.ConnectionRebuildStart">
            <summary>
            自动重连开始时，触发此事件。如果重连成功则将重新登录，并触发RelogonCompleted事件。
            </summary>
        </member>
        <member name="E:ESPlus.Rapid.RapidPassiveEngine.RelogonCompleted">
            <summary>
            当断线重连成功时，会自动登录服务器验证用户账号密码，并触发此事件。如果验证失败，则与服务器的连接将会断开，且后续不会再自动重连。事件参数表明了登录验证的结果。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.ServerAddress">
            <summary>
            当前引擎所连接的服务器的地址。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.Connected">
            <summary>
            当前是否处于连接状态。如果为true，则表示不仅TCP连接正常，而且是登录成功的状态。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.LogFilePath">
            <summary>
            记录ESFramework日志的文件的路径，默认值为在运行目录下的ESFrameworkLog.txt文件。如果不需要写日志文件，则赋值为null。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.Logger">
            <summary>
            如果被赋非null值，则LogFilePath属性将无效。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.BasicOutter">
            <summary>
            该接口用于向服务器发送基本的请求，如获取自己的IP、获取所有在线用户列表等等。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.CustomizeOutter">
            <summary>
            该接口用于向服务器或其它在线用户发送自定义信息。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.FileOutter">
            <summary>
            该接口用于向服务器或其它在线用户发送文件。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.P2PController">
            <summary>
            该接口用于控制和管理所有的P2P通道。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.ContactsOutter">
            <summary>
            该接口用于获取联系人列表、接收联系人状态改变通知、以及组广播。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.HeartBeatSpanInSecs">
            <summary>
            每隔多长时间（秒）发送一次心跳消息。如果小于等于0，表示不发送定时心跳。默认值为10秒。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.WaitResponseTimeoutInSecs">
            <summary>
            当通过ICustomizeInfoOutter.Query方法进行同步调用时，等待回复的最长时间。如果小于等于0，表示一直阻塞调用线程直到等到回复为止。默认值为30秒。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.Sock5ProxyInfo">
            <summary>
            Sock5代理服务器信息。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.SystemToken">
            <summary>
            系统标志。引擎在初始化时会提交给服务器验证客户端是否是正确的系统。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.CurrentUserID">
            <summary>
            当前登录的用户UserID。（只有Initialize方法调用成功之后，该属性才可正常使用）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.P2PServerAddress">
            <summary>
            如果需要启用P2P支持，则需要设定P2P服务器的地址。默认值为null。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.ChannelIsBusy">
            <summary>
            与服务器之间的通道是否处于繁忙状态？
            </summary>
        </member>
        <member name="F:ESPlus.Rapid.RapidPassiveEngine.stressTesting">
            <summary>
            如果设置为true，则将：关闭P2P，关闭同步调用机制的回复超时检测线程，关闭异步消息队列，关闭心跳。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.StressTesting">
            <summary>
            是否用于性能测试。如果是，则设为true，以加快客户端引擎的启动速度，方便测试。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidPassiveEngine.AutoReconnect">
            <summary>
            掉线后，是否自动重连。
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.RapidPassiveEngine.Initialize(System.String,System.String,System.String,System.Int32,ESPlus.Application.CustomizeInfo.ICustomizeHandler)">
            <summary>
            完成客户端引擎的初始化，与服务器建立TCP连接，连接成功后立即验证用户密码。如果连接失败，则抛出异常。
            </summary>
            <param name="userID">当前登录的用户ID，由数字和字母组成，最大长度为10</param>
            <param name="logonPassword">用户登陆密码。</param>
            <param name="serverIP">服务器的IP地址</param>
            <param name="serverPort">服务器的端口</param>       
            <param name="customizeHandler">自定义处理器，用于处理服务器或其它用户发送过来的消息</param>        
        </member>
        <member name="M:ESPlus.Rapid.RapidPassiveEngine.Close">
            <summary>
            关闭客户端通信引擎。
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.RapidPassiveEngine.CloseConnection(System.Boolean)">
            <summary>
            主动关闭与服务器的连接,将引发自动重连。
            </summary>
        </member>
        <member name="T:ESPlus.Rapid.RapidServerEngine">
            <summary>
            迅捷的服务端引擎。基于TCP、使用二进制协议。默认允许的最大消息尺寸为64K，心跳超时为30秒。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.LogFilePath">
            <summary>
            记录ESFramework日志的文件的路径，默认值为在运行目录下的ESFrameworkLog.txt文件。如果不需要写日志文件，则赋值为null。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.Logger">
            <summary>
            如果被赋非null值，则LogFilePath属性将无效。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.UserManager">
            <summary>
            通过此接口，可以获取用户的相关信息以及用户上/下线的事件通知。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.PlatformUserManager">
            <summary>
            平台用户管理器。可以获取群集中所有在线用户信息。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.BasicController">
            <summary>
            通过此接口，服务端可以将目标用户从服务器中踢出，并关闭其对应的tcp连接。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.CustomizeController">
            <summary>
            通过此接口，服务端可以主动向在线用户发送/投递自定义信息。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.FileController">
            <summary>
            通过此接口，服务端可以主动向在线用户发送文件。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.HeartbeatTimeoutInSecs">
            <summary>
            心跳超时间隔（秒）。即服务端多久没有收到客户端的心跳消息，则视客户端为超时掉线。默认值为30秒。如果设置小于等于0，则表示不做心跳检查。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.AutoRespondHeartBeat">
            <summary>
            是否自动回复客户端发过来的心跳消息（将心跳消息原封不动地发回客户端）。默认值为true。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.WaitResponseTimeoutInSecs">
            <summary>
            当通过ICustomizeInfoController.QueryClient方法进行同步调用时，等待回复的最长时间。如果小于等于0，表示一直阻塞调用线程直到等到回复为止。默认值为30秒。（如果要set该属性，则必须在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.ContactsController">
            <summary>
            通过此接口，服务端可以主动向某个组广播信息。（只有在RapidServerEngine初始化成功后，才能正常使用。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.IPAddressBinding">
            <summary>
            通过哪个IP地址提供服务。如果设为null，则表示绑定本地所有IP。默认值为null。（如果要set该属性，则必须要在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.UseAsP2PServer">
            <summary>
            是否同时作为P2P服务器运行。默认值为true（P2P服务器将使用UDP端口，端口号为当前引擎监听的端口号加1）。（如果要set该属性，则必须要在调用Initialize方法之前设置才有效。）
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.P2PEnabled">
            <summary>
            客户端是否开启P2P。即使框架授权了P2P功能，也可以通过该属性关闭P2P。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.ConnectionCount">
            <summary>
            当前在线连接的数量。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.MaxConnectionCount">
            <summary>
            服务器允许最大的同时连接数。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.Port">
            <summary>
            当前监听的端口。
            </summary>
        </member>
        <member name="P:ESPlus.Rapid.RapidServerEngine.ServerID">
            <summary>
            服务端实例的唯一编号。
            </summary>
        </member>
        <member name="M:ESPlus.Rapid.RapidServerEngine.Initialize(System.Int32,ESPlus.Application.CustomizeInfo.ICustomizeHandler)">
            <summary>
            完成服务端引擎的初始化，并启动服务端引擎。
            </summary>
            <param name="port">用于提供tcp通信服务的端口</param>
            <param name="customizeHandler">服务器通过此接口来处理客户端提交给服务端自定义信息。</param>
        </member>
        <member name="M:ESPlus.Rapid.RapidServerEngine.Initialize(System.Int32,ESPlus.Application.CustomizeInfo.ICustomizeHandler,ESPlus.Application.Basic.Server.IBasicHandler)">
            <summary>
            完成服务端引擎的初始化，并启动服务端引擎。
            </summary>
            <param name="port">用于提供tcp通信服务的端口</param>
            <param name="customizeHandler">服务器通过此接口来处理客户端提交给服务端自定义信息。</param>
            <param name="basicHandler">用于验证客户端登陆密码。如果不需要验证，则直接传入null。</param> 
        </member>
        <member name="M:ESPlus.Rapid.RapidServerEngine.Close">
            <summary>
            关闭服务端引擎。
            </summary>
        </member>
        <member name="T:ESPlus.Serialization.ICompactSerializer">
            <summary>
            ICompactSerializer 紧凑序列化器，产生紧凑的字节流。
            </summary>
        </member>
        <member name="M:ESPlus.Serialization.ICompactSerializer.Deserialize``1(System.Byte[],System.Int32)">
            <summary>
            反序列化。
            </summary>
            <typeparam name="T">反序列化后得到的对象的类型</typeparam>
            <param name="buff">数据缓冲区</param>
            <param name="startIndex">偏移起始点</param>
            <returns>类型为T的对象</returns>
        </member>
        <member name="M:ESPlus.Serialization.ICompactSerializer.Serialize``1(``0)">
            <summary>
            将对象序列化为字节流。
            </summary>
            <typeparam name="T">对象的类型</typeparam>
            <param name="obj">要序列化的对象</param>
            <returns>序列化结果</returns>
        </member>
        <member name="M:ESPlus.Serialization.ICompactSerializer.Serialize(System.Type,System.Object)">
            <summary>
            将对象序列化为字节流。
            </summary>
            <param name="type">要序列化的对象的类型</param>
            <param name="obj">要序列化的对象</param>
            <returns>序列化结果</returns>
        </member>
        <member name="T:ESPlus.Serialization.NotSerializedCompactlyAttribute">
            <summary>
            用于标记不需要进行紧凑序列化的字段或属性。
            </summary>
        </member>
        <member name="M:ESPlus.Serialization.BaseCompactSerializer.CustomizeExtenseSerialize(System.IO.MemoryStream,System.Type,System.Object)">
            <summary>
            增加自定义的序列化类型。如果自定义不支持目标类型，请返回false。
            </summary>        
        </member>
        <member name="M:ESPlus.Serialization.BaseCompactSerializer.CustomizeExtenseDeserialize(System.Type,System.Byte[],System.Int32@,System.Object@)">
            <summary>
            增加自定义的序列化类型。如果自定义不支持目标类型，请返回false。
            </summary>        
        </member>
        <member name="M:ESPlus.Serialization.CompactPropertySerializer.SetDefault(ESPlus.Serialization.ICompactSerializer)">
            <summary>
            如果扩展了CompactPropertySerializer，调用该方法重置默认的ICompactSerializer。
            </summary>        
        </member>
        <member name="T:ESPlus.Serialization.SerializeException">
            <summary>
            序列化或反序列化时，产生的异常。
            </summary>
        </member>
        <member name="T:ESPlus.GlobalUtil">
            <summary>
            全局公共设施。用于设置全局参数。
            </summary>
        </member>
        <member name="M:ESPlus.GlobalUtil.SetMaxLengthOfUserID(System.Byte)">
            <summary>
            设置UserID（包括GroupID）的最大长度(不能超过255)。必须在Rapid引擎初始化之前设置才有效。注意，客户端与服务端要统一设置。
            </summary>       
        </member>
        <member name="M:ESPlus.GlobalUtil.SetMaxLengthOfMessage(System.Int32)">
            <summary>
            设置消息的最大长度,初始值为1M。必须在Rapid引擎初始化之前设置才有效。注意，客户端与服务端要统一设置。
            </summary>  
        </member>
        <member name="M:ESPlus.GlobalUtil.SetAuthorizedUser(System.String,System.String)">
            <summary>
            设置授权帐号和密码。必须在Rapid引擎初始化之前设置才有效。
            </summary>  
        </member>
    </members>
</doc>
