sgcWebSockets 4.5.4

· 版本发布

Rad Studio 

以下是 sgcWebSockets 4.5.4 包含的新功能和错误修复的完整列表:

[+] : 改进 TLSOptions.Version 属性,现在若值为 tlsUndefined(默认值),客户端将尝试协商所有可能的 TLS 版本(从 TLS 1.3 到 TLS 1.0),此更改之前默认选择 TLS 1.0。
[+] : 改进 Amazon AWS IoT 客户端,新增属性 SignatureV4.SessionToken,使用临时安全凭证时必须填写。
[+] : 改进 HTTPUploadFiles,现在有 2 个新事件:OnHTTPUploadBeforeSaveFile 和 OnHTTPUploadAfterSaveFile,允许获知/修改接收到的文件名称。
[+] : 改进 openSSL 配置,若 openSSL_Options.LibPath = oslpCustomPath,则将 openSSL 库的位置设置为 OpenSSL_Options.LibPathCustom 的值。(感谢 Matteo 的建议。)
[+] : 改进 openSSL 配置,新增属性 UnixSymLinks,允许在 Unix 下禁用加载 SymLinks。修复 MacOS Monterey 下的错误 "Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI."。
[+] : 改进 openSSL 错误消息 "cannot load opensssl",现在显示路径、不可用的方法和版本。仅企业版可用。
[+] : 改进 Socket.IO API,新增对最新 API 4 的支持。
[+] : 新增对 Cryptorobotics Send Signal 方法的支持。

[*] : 修复 Indy 服务器错误:某些情况下半断开的 HTTP 连接可能占用全部 CPU 的问题。(感谢 Moacir 反馈。)
[*] : 修复 PerMessage_Deflate 错误:处理 Z_BUF_ERROR 消息时的问题。
[*] : 修复 PerMessage_Deflate 错误:发送空字符串或内存流时引发错误的问题。
[*] : 修复 PerMessage_Deflate 错误:膨胀或压缩时发生内部错误,错误消息未传递给异常的问题。
[*] : 修复 PerMessage_Deflate 错误:膨胀流时,若缓冲区不够大,流未完全压缩的问题。
[*] : 修复 TsgcWebSocketClient 使用纯 TCP 协议和 TLS 1.3 时,连接在几秒钟内锁定线程的错误。
[*] : 修复启用 HTTPUploadFiles.RemoveBoundaries 属性时,在旧版 Delphi 上无法提取文件名的错误。
[*] : 修复启用 HTTPUploadFiles.RemoveBoundaries 属性时,若文件名包含空格,文件名未被完整提取的错误。
[*] : 修复在 CBuilder 下编译 TsgcWebSocketClient_WinHTTP 时,与 Wininet 单元(HINTERNET、INTERNET_PORT)的歧义错误。
[*] : 修复 MQTT 客户端读写 VarInteger 值时的错误。
[*] : 修复 MQTT 客户端错误:使用 PublishProperties 发布消息时,始终发送属性 TopicAlias = 1 的问题。

[/] : 属性 TsgcWebSocketClient.Active 现在返回内部连接是否已被分配,之前调用的是 TCP 客户端的 Connected 函数。

.NET 

以下是 sgcWebSockets .NET 4.5.4 包含的新功能和错误修复的完整列表:

[+] : 新增对 MacOS 64 位的支持。
[+] : 新增对 NuGet 包的支持。
[+] : 改进 TLSOptions.Version 属性,现在若值为 tlsUndefined(默认值),客户端将尝试协商所有可能的 TLS 版本(从 TLS 1.3 到 TLS 1.0),此更改之前默认选择 TLS 1.0。
[+] : 改进 HTTPUploadFiles,现在有 2 个新事件:OnHTTPUploadBeforeSaveFile 和 OnHTTPUploadAfterSaveFile,允许获知/修改接收到的文件名称。
[+] : 改进 openSSL 配置,若 openSSL_Options.LibPath = oslpCustomPath,则将 openSSL 库的位置设置为 OpenSSL_Options.LibPathCustom 的值。(感谢 Matteo 的建议。)
[+] : 改进 openSSL 配置,新增属性 UnixSymLinks,允许在 Unix 下禁用加载 SymLinks。修复 MacOS Monterey 下的错误 "Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI."。
[+] : 改进 openSSL 错误消息 "cannot load opensssl",现在显示路径、不可用的方法和版本。
[+] : 改进 Socket.IO API,新增对最新 API 4 的支持。

[*] : 修复 Indy 服务器错误:某些情况下半断开的 HTTP 连接可能占用全部 CPU 的问题。(感谢 Moacir 反馈。)
[*] : 修复 PerMessage_Deflate 错误:处理 Z_BUF_ERROR 消息时的问题。
[*] : 修复 PerMessage_Deflate 错误:发送空字符串或内存流时引发错误的问题。
[*] : 修复 PerMessage_Deflate 错误:膨胀或压缩时发生内部错误,错误消息未传递给异常的问题。
[*] : 修复 PerMessage_Deflate 错误:膨胀流时,若缓冲区不够大,流未完全压缩的问题。
[*] : 修复 TsgcWebSocketClient 使用纯 TCP 协议和 TLS 1.3 时,连接在几秒钟内锁定线程的错误。
[*] : 修复启用 HTTPUploadFiles.RemoveBoundaries 属性时,在旧版 Delphi 上无法提取文件名的错误。
[*] : 修复启用 HTTPUploadFiles.RemoveBoundaries 属性时,若文件名包含空格,文件名未被完整提取的错误。
[*] : 修复 MQTT 客户端读写 VarInteger 值时的错误。
[*] : 修复 MQTT 客户端错误:使用 PublishProperties 发布消息时,始终发送属性 TopicAlias = 1 的问题。

[/] : 属性 TsgcWebSocketClient.Active 现在返回内部连接是否已被分配,之前调用的是 TCP 客户端的 Connected 函数。