以下是 sgcWebSockets 4.4.5 包含的新功能和错误修复的完整列表:
[+] : 新增组件 TsgcHTTP_OAuth2_Server,OAuth2 协议的服务器端实现,允许对 OAuth2 客户端进行授权并颁发访问令牌。
[+] : 新增演示,展示如何在服务器组件上启用 OAuth2(位于文件夹 Demos\20.HTTP_Protocol\02.OAuth2_Authentication)。
[+] : 改进 Azure IoT MQTT 客户端,DeviceToCloud 现在允许在消息中发送属性(键值对)。
[+] : 在 TsgcHTTP_OAuth2_Client 中新增属性 HTTPClientOptions,允许在请求新令牌时自定义 HTTP 客户端。
[+] : 在 HTTP.SYS 服务器中新增属性 BindingOptions,允许自定义服务器启动时是否配置 SSL 证书(需要管理员权限),默认启用。
[+] : 在 HTTP.SYS 服务器中新增事件 "OnBeforeBinding",允许自定义服务器将保留的 URL。
[+] : 改进 TsgcWebSocketClient_WinHTTP,新增属性 Options.FragmentedMessages,其工作方式与 TsgcWebSocketClient 相同。
[+] : 改进 TsgcWebSocketClient_WinHTTP,新增事件 OnFragmented。
[+] : 在 TsgcWSPClient_STOMP 中新增属性 ConnectHeaders,允许在 connect 方法时发送自定义头部。
[*] : 修复错误:当 NotifyEvents = neAsynchronous 且在事件处理期间调用 CheckSynchronize 时出现无效指针的问题。(感谢 Dirk 反馈。)
[*] : 修复处理分片消息的错误:第二个片段到达时第一个片段被覆盖的问题。(感谢 Patrik 反馈。)
[*] : 修复 TsgcWebSocketClient 错误:断开连接时内部线程被停止,但在某些情况下该方法被多次调用的问题。
[*] : 修复潜在线程锁定错误:当 NotifyEvents = neAsynchronous,连接已断开且有待处理的消息时的问题。
[*] : 修复在客户端/服务器已销毁后执行方法 "Start" 时发生访问冲突的错误。
[*] : 修复 TsgHTTP_OAuth2 错误:收到授权代码后,状态值未与发送的值进行比较,现在若不相等则返回错误。
[*] : 修复 Telegram 客户端错误:连接到 Telegram 服务器后读取线程未启动的问题。
[*] : 修复 Telegram 客户端错误:聊天消息的标题未被正确解码的问题。(感谢 Hyeonwoo 反馈。)
[*] : 修复从 Rad Studio XE8 到 10.1 Berlin 编译时的警告。
[*] : 修复 Indy 服务器错误:连接已关闭但缓冲区仍有数据需要处理时,线程永不结束并占用全部 CPU 的问题。
[*] : 修复 HTTP.SYS 服务器错误:若未设置 OnHTTPRequest 事件,服务器没有任何响应,现在返回 404 错误。
[*] : 修复 HTTP.SYS 服务器解码 HTTP 方法时的错误:只支持 GET 和 POST 的问题。
[*] : 修复 HTTP.SYS 服务器错误:在 TsgcWSMSG 对象中销毁连接时的内存泄漏问题。
[*] : 修复 HTTP.SYS 服务器错误:断开连接时尝试释放对象引发无效指针异常的问题。
[*] : 修复 HTTP.SYS 服务器错误:启动服务器时发生错误,真实错误消息未向用户抛出的问题。
[*] : 修复 TsgcWSAPI_SocketIO 组件在初始化连接且选择 ioAPI0 作为 API 时的错误。(感谢 Jean 反馈。)
[*] : 修复在非 Windows 操作系统上 WriteTimeOut > 0 时连接时的错误,现在此属性仅适用于 Windows。
[/] : TsgHTTP_OAuth2 组件已重命名为 TsgcHTTP_OAuth2_Client。
[/] : 单元 sgcHTTP_OAuth.pas 已重命名为 sgcHTTP_OAuth_Client.pas。
[/] : 单元 sgcHTTP_OAuth2.pas 已重命名为 sgcHTTP_OAuth2_Client.pas。
