v4.0
更新日期:
暂未发布正式版,Nuget请勾选预发布版本可以尝鲜更新。
目前4.0版本已进入RC(发布候选)阶段,一般API基本不会再变动。正式版计划在2025年12月左右,随.NET10发布正式版。
更新描述:
- 此次更新可能会引入破坏性变更,升级前请务必做好代码备份。代码升级详情请看4.0升级指南
- Fast序列化、Dmtp组件在运行时无法向下兼容v3.x版本,请保证客户端和服务器同时升级
- 全系不再支持
.NET Framework45,最低支持.NET Framework462及以上版本,直至.NET 10.0。 - 全系不再异步方法同步化,即:不再提供异步方法的同步版本,所有异步方法均需使用
await调用。 - 核心字节流处理系统重构和性能优化
- 全面重构数据适配器架构,提升数据处理能力
- 传输层新增多种传输模式支持
-
WebSocket新增异步读取、分包传输、自定义帧等高级功能 -
DMTP协议支持多种传输协议的服务器和客户端工厂模式 - 最高至
.NET 10.0框架,享受最新性能改进
更新详情:
TouchSocket.Core
-
IBytesReader和IByteBlockReader接口,提供统一的字节读取抽象 -
IBytesWriter和IByteBlockWriter接口,提供高性能的字节写入能力 -
ByteBlockStream、ReadOnlyStream、WriteOnlyStream流包装类,增强流操作能力 -
BytesWriter、PipeBytesWriter、SegmentedBytesWriter多种字节写入器实现 -
WriterAnchor<TWriter>写入锚点机制,支持位置回溯和数据重写 -
AsyncExchange<T>异步数据交换器,提供线程安全的单槽异步交接 -
ReadLease<T>读取租约机制,优化资源管理和生命周期控制 -
IPackageConverter<T>包转换器接口,统一数据包序列化和反序列化 -
CustomDataHandlingAdapterGroup<TRequest>适配器组,支持多适配器组合使用 -
MultithreadingDataAdapterTester多线程数据适配器测试器 -
TcpDataAdapterTester和UdpDataAdapterTester专用测试器 -
UdpDataHandlingAdapterUDP数据处理适配器基类 -
UdpFrame和UdpPackageUDP帧和包处理机制 -
UdpPackageAdapterUDP包适配器,支持大数据分包传输 -
FastBinaryPrimitiveHelper快速二进制原生类型处理器 -
TimeoutTokenSource类,提供超时令牌管理和异常区分机制 -
TaskCompletionSourceWithoutInlining<T>防止延续内联,提升性能 -
AsyncWaitData<T>高性能异步等待容器,基于ValueTask实现 -
InternalUtilities内部工具类,优化队列中间元素移除等操作 -
EmptyStruct轻量级空结构体 -
NullableHelpers提供安全的空值转换 -
WaitPool内部优化使用新的AsyncWaitData结构,支持高并发场景 - 异步操作的取消令牌处理逻辑和内存分配优化
TouchSocket.Http & WebSocket
-
ContentCompletionStatus枚举,精确跟踪内容读取状态 -
HttpReadOnlyMemoryBlockResult结构,支持零拷贝内存块读取 -
ProxyAuthenticationException代理认证异常 -
ProxyConnectionException代理连接异常 -
AuthenticationPlugin基础认证插件,支持Basic Authentication认证机制 -
WebSocketFeatureOptions统一配置类,支持URL路径匹配、自动Pong响应等 -
ClientHttpResponse类,支持流式读取和分块传输(Chunked Transfer) -
ServerHttpRequest和ServerHttpResponse内容处理机制 - 复杂代理场景的错误处理和状态管理
- 可配置用户名、密码和认证域的认证系统
- WebSocket分包数据传输(Continuation frames)
- 自定义WebSocket帧(RSV位设置)
- 多种关闭状态码设置
- WebSocket插件接口统一化:
IWebSocketHandshakingPlugin→IWebSocketConnectingPlugin - WebSocket插件接口统一化:
IWebSocketHandshakedPlugin→IWebSocketConnectedPlugin - Ping/Pong心跳机制的可靠性
- 插件扩展生成器自动化支持
TouchSocket.Sockets
-
ITransport核心传输接口,统一读写器和生命周期管理 -
ITransportReader和ITransportWriter分离读写职责 -
BaseTransport抽象基类,提供管道化传输基础设施 -
TcpTransportTCP传输层实现,支持SSL/TLS加密 -
StreamTransport通用流传输层,适配各种流类型 -
TransportStream基于管道的流实现 -
PipeTcpClient管道化TCP客户端 -
IPipeTcpClient接口支持直接管道操作 -
TcpOperationResultTCP操作结果封装 -
UdpOperationResultUDP操作结果封装 -
TransportOption传输配置类 -
CheckClearOption连接检查和清理配置 -
ReconnectionOptions重连机制配置增强 -
SslOption基础SSL配置 -
ClientSslOption客户端SSL配置 -
ServiceSslOption服务端SSL配置 -
BytesReaderEventArgs字节读取器事件参数 -
MemoryEventArgs内存数据事件参数 -
ConnectionCheckResult连接检查结果枚举 -
TcpListenOptionTCP监听选项 - 零拷贝数据传输和内存优化
- 管道选项、缓冲区大小等精细化配置
- 证书验证回调、协议版本选择等高级功能
- Socket错误处理和状态报告机制
- 插件事件传递机制和性能
TouchSocket.XmlRpc
-
XmlRpcOption统一配置类,支持URL匹配、自定义验证委托等高级配置 -
AsyncToSyncWarning特性标记,提供异步转同步警告 - 代理生成器参数类型规范化:
IInvokeOption→InvokeOption - 异步方法命名规范
- 代码生成器的类型安全性
TouchSocket.Dmtp
-
ChannelDataType通道数据类型枚举,支持多种通道数据类型 -
TouchSocketDmtpSourceGenerationContextJSON序列化上下文 -
SealedDmtpActor密封演员模式实现 -
DmtpAdapterSlim轻量级适配器(注释版本,预留扩展) -
DmtpFeatureOption基础特性配置 -
DmtpOption核心DMTP配置选项 -
DmtpRpcOptionRPC配置选项类 -
DmtpRpcActorExtension扩展方法集合 -
DmtpFileTransferOption文件传输配置 -
DmtpFileTransferPluginManagerExtension扩展方法 -
DmtpRedisOptionRedis配置选项 -
RedisPluginManagerExtension插件管理扩展 -
IDmtpConnectingPlugin连接中插件接口 -
IDmtpConnectedPlugin已连接插件接口 -
TcpDmtpServiceTCP协议DMTP服务 -
HttpDmtpServiceHTTP协议DMTP服务 -
NamedPipeDmtpService命名管道DMTP服务 -
UdpDmtpUDP协议DMTP支持 -
WebSocketDmtpServiceWebSocket协议DMTP服务 -
TcpDmtpClientFactoryTCP客户端连接池 -
HttpDmtpClientFactoryHTTP客户端连接池 - 多种调度器模式:即时、队列、并发、全局队列
- 序列化选择器配置
- 文件资源控制器、根路径配置
- 小文件优化传输策略
- 字节序列化转换器配置
- 内存缓存和自定义缓存后端
- 动态方法生成和插件扩展
- 元数据、验证等核心类型的AOT编译优化
- WebSocket协议的DMTP服务器
- HTTP中间件的DMTP服务器
- 统一容器配置
- 连接数控制和超时管理
- 特性插件注册和生命周期管理
- 协议号自定义分配
- DMTP消息处理性能和内存使用
- 序列化性能和包大小
TouchSocket.JsonRpc
-
JsonRpcOption基础配置类,支持序列化器管理 -
HttpJsonRpcOptionHTTP协议专用配置 -
TcpJsonRpcOptionTCP协议专用配置 -
WebSocketJsonRpcOptionWebSocket协议专用配置 -
TouchSocketSerializerConverter序列化转换器基础设施 - Newtonsoft.Json、System.Text.Json等多种序列化器
- 自定义序列化格式化器注册和管理
- HTTP JsonRpc URL路径匹配和自定义验证
- TCP JsonRpc连接验证委托
- WebSocket JsonRpc连接上下文验证
- 不同传输协议的JsonRpc配置接口
- AllowJsonRpc委托配置模式
TouchSocket.NamedPipe & TouchSocket.SerialPorts
-
NamedPipeTransport基于流传输的命名管道实现 -
SerialPortTransport专用串口传输实现 -
SerialCore串口核心操作封装 -
StreamTransport统一传输层接口 -
BaseTransport提供统一的管道化接口 - 双向通信和异步操作
- 串口参数配置和异步读写操作
TouchSocket.WebApi & TouchSocket.Mqtt
-
WebApiOption统一配置类 -
WebApiSerializerConverter序列化转换器 -
SwaggerOptionSwagger配置选项 - MQTT协议插件扩展自动生成
- JSON序列化器配置和自定义转换器
- 浏览器自动启动、访问前缀配置
- 连接、接收、关闭等事件插件
- API文档生成和展示功能
- 插件注册和生命周期管理
TouchSocket.SourceGenerator
-
UtilsCore源生成器工具类 -
EndianType字节序类型枚举 - 大端、小端及交换字节序模式
- 代码生成器基础设施支持
TouchSocketPro.AspNetCore
-
HttpStreamTransportHTTP流传输实现
重要技术架构改进
- 统一传输层架构,引入
ITransport接口统一所有传输协议(TCP、UDP、HTTP、WebSocket、命名管道、串口等) - 基于
System.IO.Pipelines的高性能管道化数据处理 - 支持零拷贝数据传输,显著降低内存分配和GC压力
- 统一的SSL/TLS加密支持,可在任意传输层启用加密
- 全面采用
ValueTask减少异步操作的内存分配 - 新增超时控制和取消令牌的统一处理机制
- 改进异步等待池系统,提升高并发场景性能
- 支持异步延续防内联,避免线程池饥饿
- 统一插件接口命名规范和生命周期管理
- 支持插件扩展代码自动生成,减少样板代码
- 改进插件事件传递机制,支持更复杂的事件链
- 新增插件配置选项模式,提供更灵活的插件配置
- 引入选项模式(Options Pattern),统一各组件配置接口
- 支持链式配置方法,提升开发体验
- 新增配置验证和默认值机制
- 支持运行时配置动态修改
重要变更说明
- WebSocket插件接口重命名:
IWebSocketHandshakingPlugin→IWebSocketConnectingPlugin - WebSocket插件接口重命名:
IWebSocketHandshakedPlugin→IWebSocketConnectedPlugin - WebSocket插件方法重命名:
OnWebSocketHandshaking→OnWebSocketConnecting - WebSocket插件方法重命名:
OnWebSocketHandshaked→OnWebSocketConnected - WebSocket配置方式调整:从链式调用改为选项配置模式
- XmlRpc配置方式调整:使用
SetAllowXmlRpc替代SetXmlRpcUrl - 重连插件调整:使用泛型版本
UseReconnection<WebSocketClient>()替代特定方法