跳到主要内容

v3.1.16

更新日期: 2025.8.21

更新描述:

  • SSL配置重构和安全性改进。
  • 代码格式优化和规范化。
  • 版本号更新至3.1.16。

更新详情:

TouchSocket.Core

  •   SystemExtension.WriteAsync 方法的代码格式,将多行的 ConfigureAwait 调用合并为一行,提升代码可读性。

TouchSocket

  •   ClientSslOption 构造函数重构,移除自动读取系统根证书存储的复杂逻辑,改为初始化空的 X509Certificate2Collection 集合,提升安全性。
  •   SslOption.SslProtocols 属性添加默认值 SslProtocols.None,简化SSL配置。
  •   TouchSocketConfigExtension 中SSL配置逻辑简化:
    • TargetHostvalue.Authority 改为 value.Host
    • 移除复杂的条件编译SSL协议配置,统一使用 SslProtocols.None

v3.1.15

更新日期: 2025.8.3

更新描述:

  • HTTP协议头部解析性能优化。
  • RPC代码生成器命名空间改进。

更新详情:

TouchSocket.Http

  •   HttpBase.ParsingHeader 方法中的字节块解析逻辑,优化内存使用和变量命名,提升HTTP头部解析性能。
  •   修复头部长度计算错误的问题。

TouchSocket.SourceGenerator

  •   RpcClientCodeBuilder.GetNamespace 方法,改进默认命名空间生成策略,支持根据RpcAttributeName自定义命名空间格式。
  •   代码生成器的命名空间逻辑,提升生成代码的组织结构。

v3.1.14

更新日期: 2025.7.20

更新描述:

  • HTTP模块性能优化和内存管理改进。

更新详情:

TouchSocket.Http

  •   HttpResponse.GetContentAsync 方法中的内存流初始化,使用精确的内容长度预分配内存,提升性能。
  •   内存分配策略,减少不必要的内存占用。
  •   变量命名和局部变量使用,提升代码可读性。

v3.1.13

更新日期: 2025.7.14

更新描述:

  • 修复和改进升级,提升稳定性和性能。
  • MQTT协议处理优化和错误修复。

更新详情:

TouchSocket.Mqtt

  •   MQTT 协议名称统一为 "MQTT"(大写),修复协议标准一致性问题。
  •   MqttAdapter 中消息解析位置计算错误,修复数据包边界计算问题。
  •   VariableByteIntegerRecorder 中长度设置错误,修复变长整数记录器的边界处理。

v3.1.12

更新日期: 2025.7.8

更新描述:

  • 兼容性修复升级。
  • 代码质量和文档规范化改进,以及功能增强。

更新详情:

TouchSocket.Core

  •   代码注释规范化,统一将 "null" 改为 <see langword="null"/> 的XML文档格式。
  •   EasyMemoryMarshal 类增加了更详细的文档和泛型约束。
  •   多个核心类的内存管理和线程安全性。
  •   TouchSocketBitConverter 中的异常文档注释。

TouchSocket.Mqtt

  •   MQTT协议名称从 "MQTT" 统一为 "Mqtt"。
  •   MqttSessionActor 消息分发机制,提升性能和稳定性。
  •   ThreadSafeTopicSubscriptions 类,提供线程安全的主题订阅管理。
  •   MqttBroker 的消息转发逻辑,改进并发处理能力。
  •   MqttReceivedEventArgs 中属性命名一致性问题。

TouchSocket.SerialPorts

  •   ISerialPortClientSerialPortClient 实现 IConnectableClient 接口。
  •   ConnectAsync 方法支持异步连接操作。
  •   ISerialPortSession 接口继承关系,移除冗余接口。

TouchSocket.Modbus

  •   IModbusRtuMaster 实现 IConnectableClient 接口。
  •   ModbusRtuMaster 增加 ConnectAsync 方法支持。

TouchSocket.WebApi

  •   RegexRouterAttribute 类增加详细的XML文档注释。
  •   WebApiAttribute 中的路由处理逻辑和变量命名。

TouchSocket.Sockets

  •   网络监听器和客户端基类的参数验证和错误处理。
  •   ReconnectionPlugin 的 Dispose 方法错误,修复无限循环任务的正确释放机制。(#68 by @godchadigo)

v3.1.9(10)(11)

更新日期: 2025.6.24

更新描述:

兼容性修复升级。

更新详情:

TouchSocket.Core

  •   ResultResult<T>在调试时的显示。
  •   IByteBlock的部分方法传参。

TouchSocket.Mqtt

  •   IMqttTcpClient没有继承ISetupConfigObject的bug。

TouchSocket.SerialPort

  •   StreamAsync异步流模式工作异常的bug。

TouchSocketPro.Modbus

  •   ModbusCoilsDrive支持线圈读写。
  •   ModbusDiscreteInputsDrive支持离散输入读写。
  •   ModbusHoldingRegistersDrive支持保持寄存器读写。
  •   ModbusInputRegistersDrive支持输入寄存器读写。

TouchSocketPro.PlcBridges

  •   PlcObject组件。

v3.1.8

更新日期: 2025.6.15

更新描述:

兼容性修复升级。

更新详情:

TouchSocket.Core

  •   DependencyProperty在调试时的显示。
  •   SafeDispose方法的返回,由void改为Result。此修改不影响代码编译,但是需要重新编译依赖dll。

TouchSocket.Http

  •  Http服务器在响应后,HttpResponse不会清空Contentbug#ICEVTN

TouchSocket.Modbus

  •   IModbusResponse类新增IsSuccess属性,可用于快捷获取响应结果。
  •   IModbusResponseData属性由Byte[]改为ReadOnlyMemory<byte>。如果仍需使用数组,请使用Data.Span.ToArray()方法获取数据。

TouchSocket.SerialPort

  •   StreamAsync性能异步流模式,可在SerialPortOption中直接启用。 #PR72

TouchSocketPro.PlcBridges

  •   新组件发布。

v3.1.7

更新日期: 2025.6.8

更新描述:

兼容性修复升级。

更新详情:

TouchSocket.Core

  •   FileLogger在Windows服务发布时,保存路径错误的bug。

TouchSocket.Sockets

  •   ClientFactory的MinCount失效的bug。

TouchSocket.Dmtp

  •   FileResourceInfo类新增Create方法和Save的其他重载。更方便的支持断点续传方式。
  •   FileSectionResult类释放逻辑,减少异常的发生。

v3.1.6

更新日期: 2025.6.2

更新描述:

兼容性修复升级。

更新详情:

TouchSocket.SerialPort

  •   串口组件数据接收回调事件异常。#ICB8IN

v3.1.5

更新日期: 2025.5.24

更新描述:

兼容性修复升级。

更新详情:

TouchSocket.Core

  •   源生成器提示。

v3.1.3(4)

更新日期: 2025.5.18

更新描述:

兼容性修复升级。

更新详情:

TouchSocket.Core

  •   Method相关操作,具体请看新文档

TouchSocket.Dmtp

  •   Dmtp ChannelHoldOnAsyncCompleteAsyncCancelAsync等方法返回值改为Result不再抛出异常。

v3.1.2

更新日期: 2025.5.11

更新描述:

兼容性修复升级。

更新详情:

All

  •   全系语法分析器和源生成器,使用增量源生成器,减少编译时间。

TouchSocket.Core

  •   Logger在添加到容器时,支持直接设置日志等级。
  •   ByteBlockValueByteBlock在请求的length为0时,会抛出异常。 #69
  •   WaitHandlePool在waitDatanull无法Destroy释放问题。#IC64WX
  •   弃用ManualContainer

TouchSocket.Sockets

  •   发送字符串的效率,极大减少GC的产生。
  •   UseCheckClear的使用体验,使用更为贴切的方法名称。
  •   CheckClearPlugin在应用到Client,第2次检验会失效的bug#IC5J1I

TouchSocket.Http

  •   HttpClientBase请求时,新增直接添加Host的逻辑。#IC6OU2
  •   WebSocket在断开时,会判断是否带有主动断开消息,如果带有,则投递主动断开的消息。
  •   SetStatus的使用体验,在默认参数(成功)时,则使用SetStatusWithSuccess代替。
  •   WebSocketPingPong使用Result进行返回。不再抛出异常。
  •   Http在处理请求时,阻塞接收执行上下文的bug,这会导致如果收到http请求,且需要较长时间执行时,如果连接方已断开,则断开消息不会立即执行的bug。也会间接导致WebApiCancellationToken失效。

TouchSocket.NamedPipe

  •   UseNamedPipeSessionCheckClear的插件扩展方法。

TouchSocket.Rpc

  •   ISingletonRpcServer的接口。

TouchSocket.SerialPort

  •   UseSerialPortSessionCheckClear的插件扩展方法。

TouchSocket.WebApi

  •   WebApi调用上下文中CancellationToken不起作用的bug。

v3.1.0(1)

更新日期: 2025.4.29

更新描述:

此次升级可能会有部分代码不兼容项,请在升级前做好备份,并且详细阅读3.1升级指南

此次升级所有组件在运行时完全兼容3.0,所以无论客户端还是服务端,都可以进行差异化更新。

更新详情:

All

  •   DateTime调整为DateTimeOffset
  •   Task.Run全部使用EasyTask.Run再次封装运行。
  •   所有组件在日志记录时,传入可触发源,可更好的进行日志记录。

TouchSocket.Core

  •   AsyncBoundedQueue类调整为AsyncQueue
  •   BytePool类不再使用,目前使用ArrayPool<T>代替。
  •   ByteBlock类不再提供默认参数构造函数,目前强制传入申请长度。
  •   ResultCode枚举项Fail调整为Failure
  •   FastSerializerContext默认不再支持DataTableDataSet。如有需要,请自行添加DataTableFastBinaryConverterDataSetFastBinaryConverter
  •   PeriodPackageAdapter接收性能。
  •   BlockSegment性能。
  •   WaitHandlePool性能。
  •   PeriodPackageAdapter接收不判断最大包设定的bug。
  •   若干扩展方法。

TouchSocket.Sockets

  •   StopAsyncCloseAsync等方法,在调用时不再抛出异常,而是返回Task<Result>
  •   IClient的接口,不再继承自IDependencyObject。如有需求请使用IDependencyClient
  •   IServerStopedPlugin插件,改名为IServerStoppedPlugin
  •   TcpUdp等组件的释放逻辑

TouchSocket.Dmtp

  •   添加IActor的方式。

TouchSocket.Hosting

  •   日志记录信息。

TouchSocket.Http

  •   性能大幅提高。
  •   HttpStatusCode静态类,支持常用的状态码。
  •   WebSocket的SwitchProtocolToWebSocketAsync方法返回值由bool改为Result
  •   InitHeadersSetStatus等方法中设置Header的方法,由Add调整为TryAdd
  •   默认情况下,服务在响应Header中,设置Server时,不再显示具体版本。#IC25RJ
  •   HttpClient在断开连接时,不触发OnTcpClosed的bug。

TouchSocket.WebApi.Swagger

  •   在Swagger显示时,支持参数属性。PR68

TouchSocket.Rpc

  •   SingletonRpcServer名称改为SingletonRpcServer
  •   QueueRpcDispatcher性能。

TouchSocket.Mqtt

  •   功能首发。