跳到主要内容

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

  •   IBytesReaderIByteBlockReader 接口,提供统一的字节读取抽象
  •   IBytesWriterIByteBlockWriter 接口,提供高性能的字节写入能力
  •   ByteBlockStreamReadOnlyStreamWriteOnlyStream 流包装类,增强流操作能力
  •   BytesWriterPipeBytesWriterSegmentedBytesWriter 多种字节写入器实现
  •   WriterAnchor<TWriter> 写入锚点机制,支持位置回溯和数据重写
  •   AsyncExchange<T> 异步数据交换器,提供线程安全的单槽异步交接
  •   ReadLease<T> 读取租约机制,优化资源管理和生命周期控制
  •   IPackageConverter<T> 包转换器接口,统一数据包序列化和反序列化
  •   CustomDataHandlingAdapterGroup<TRequest> 适配器组,支持多适配器组合使用
  •   MultithreadingDataAdapterTester 多线程数据适配器测试器
  •   TcpDataAdapterTesterUdpDataAdapterTester 专用测试器
  •   UdpDataHandlingAdapter UDP数据处理适配器基类
  •   UdpFrameUdpPackage UDP帧和包处理机制
  •   UdpPackageAdapter UDP包适配器,支持大数据分包传输
  •   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)
  •   ServerHttpRequestServerHttpResponse 内容处理机制
  •   复杂代理场景的错误处理和状态管理
  •   可配置用户名、密码和认证域的认证系统
  •   WebSocket分包数据传输(Continuation frames)
  •   自定义WebSocket帧(RSV位设置)
  •   多种关闭状态码设置
  •   WebSocket插件接口统一化:IWebSocketHandshakingPluginIWebSocketConnectingPlugin
  •   WebSocket插件接口统一化:IWebSocketHandshakedPluginIWebSocketConnectedPlugin
  •   Ping/Pong心跳机制的可靠性
  •   插件扩展生成器自动化支持

TouchSocket.Sockets

  •   ITransport 核心传输接口,统一读写器和生命周期管理
  •   ITransportReaderITransportWriter 分离读写职责
  •   BaseTransport 抽象基类,提供管道化传输基础设施
  •   TcpTransport TCP传输层实现,支持SSL/TLS加密
  •   StreamTransport 通用流传输层,适配各种流类型
  •   TransportStream 基于管道的流实现
  •   PipeTcpClient 管道化TCP客户端
  •   IPipeTcpClient 接口支持直接管道操作
  •   TcpOperationResult TCP操作结果封装
  •   UdpOperationResult UDP操作结果封装
  •   TransportOption 传输配置类
  •   CheckClearOption 连接检查和清理配置
  •   ReconnectionOptions 重连机制配置增强
  •   SslOption 基础SSL配置
  •   ClientSslOption 客户端SSL配置
  •   ServiceSslOption 服务端SSL配置
  •   BytesReaderEventArgs 字节读取器事件参数
  •   MemoryEventArgs 内存数据事件参数
  •   ConnectionCheckResult 连接检查结果枚举
  •   TcpListenOption TCP监听选项
  •   零拷贝数据传输和内存优化
  •   管道选项、缓冲区大小等精细化配置
  •   证书验证回调、协议版本选择等高级功能
  •   Socket错误处理和状态报告机制
  •   插件事件传递机制和性能

TouchSocket.XmlRpc

  •   XmlRpcOption 统一配置类,支持URL匹配、自定义验证委托等高级配置
  •   AsyncToSyncWarning 特性标记,提供异步转同步警告
  •   代理生成器参数类型规范化:IInvokeOptionInvokeOption
  •   异步方法命名规范
  •   代码生成器的类型安全性

TouchSocket.Dmtp

  •   ChannelDataType 通道数据类型枚举,支持多种通道数据类型
  •   TouchSocketDmtpSourceGenerationContext JSON序列化上下文
  •   SealedDmtpActor 密封演员模式实现
  •   DmtpAdapterSlim 轻量级适配器(注释版本,预留扩展)
  •   DmtpFeatureOption 基础特性配置
  •   DmtpOption 核心DMTP配置选项
  •   DmtpRpcOption RPC配置选项类
  •   DmtpRpcActorExtension 扩展方法集合
  •   DmtpFileTransferOption 文件传输配置
  •   DmtpFileTransferPluginManagerExtension 扩展方法
  •   DmtpRedisOption Redis配置选项
  •   RedisPluginManagerExtension 插件管理扩展
  •   IDmtpConnectingPlugin 连接中插件接口
  •   IDmtpConnectedPlugin 已连接插件接口
  •   TcpDmtpService TCP协议DMTP服务
  •   HttpDmtpService HTTP协议DMTP服务
  •   NamedPipeDmtpService 命名管道DMTP服务
  •   UdpDmtp UDP协议DMTP支持
  •   WebSocketDmtpService WebSocket协议DMTP服务
  •   TcpDmtpClientFactory TCP客户端连接池
  •   HttpDmtpClientFactory HTTP客户端连接池
  •   多种调度器模式:即时、队列、并发、全局队列
  •   序列化选择器配置
  •   文件资源控制器、根路径配置
  •   小文件优化传输策略
  •   字节序列化转换器配置
  •   内存缓存和自定义缓存后端
  •   动态方法生成和插件扩展
  •   元数据、验证等核心类型的AOT编译优化
  •   WebSocket协议的DMTP服务器
  •   HTTP中间件的DMTP服务器
  •   统一容器配置
  •   连接数控制和超时管理
  •   特性插件注册和生命周期管理
  •   协议号自定义分配
  •   DMTP消息处理性能和内存使用
  •   序列化性能和包大小

TouchSocket.JsonRpc

  •   JsonRpcOption 基础配置类,支持序列化器管理
  •   HttpJsonRpcOption HTTP协议专用配置
  •   TcpJsonRpcOption TCP协议专用配置
  •   WebSocketJsonRpcOption WebSocket协议专用配置
  •   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 序列化转换器
  •   SwaggerOption Swagger配置选项
  •   MQTT协议插件扩展自动生成
  •   JSON序列化器配置和自定义转换器
  •   浏览器自动启动、访问前缀配置
  •   连接、接收、关闭等事件插件
  •   API文档生成和展示功能
  •   插件注册和生命周期管理

TouchSocket.SourceGenerator

  •   UtilsCore 源生成器工具类
  •   EndianType 字节序类型枚举
  •   大端、小端及交换字节序模式
  •   代码生成器基础设施支持

TouchSocketPro.AspNetCore

  •   HttpStreamTransport HTTP流传输实现

重要技术架构改进

  •   统一传输层架构,引入 ITransport 接口统一所有传输协议(TCP、UDP、HTTP、WebSocket、命名管道、串口等)
  •   基于 System.IO.Pipelines 的高性能管道化数据处理
  •   支持零拷贝数据传输,显著降低内存分配和GC压力
  •   统一的SSL/TLS加密支持,可在任意传输层启用加密
  •   全面采用 ValueTask 减少异步操作的内存分配
  •   新增超时控制和取消令牌的统一处理机制
  •   改进异步等待池系统,提升高并发场景性能
  •   支持异步延续防内联,避免线程池饥饿
  •   统一插件接口命名规范和生命周期管理
  •   支持插件扩展代码自动生成,减少样板代码
  •   改进插件事件传递机制,支持更复杂的事件链
  •   新增插件配置选项模式,提供更灵活的插件配置
  •   引入选项模式(Options Pattern),统一各组件配置接口
  •   支持链式配置方法,提升开发体验
  •   新增配置验证和默认值机制
  •   支持运行时配置动态修改

重要变更说明

  •   WebSocket插件接口重命名:IWebSocketHandshakingPluginIWebSocketConnectingPlugin
  •   WebSocket插件接口重命名:IWebSocketHandshakedPluginIWebSocketConnectedPlugin
  •   WebSocket插件方法重命名:OnWebSocketHandshakingOnWebSocketConnecting
  •   WebSocket插件方法重命名:OnWebSocketHandshakedOnWebSocketConnected
  •   WebSocket配置方式调整:从链式调用改为选项配置模式
  •   XmlRpc配置方式调整:使用 SetAllowXmlRpc 替代 SetXmlRpcUrl
  •   重连插件调整:使用泛型版本 UseReconnection<WebSocketClient>() 替代特定方法