sgcWebSockets 4.4.4

· 版本发布

sgcWebSockets 4.4.4 包含的功能

[+] : 新增组件 TsgcHTTPGoogleCloud_Calendar_Client,允许使用 Google Calendar API V3:获取日历、事件、与自己的日历同步等。
[+] : 新增演示 GoogleCalendar,展示 Google Calendar 客户端的主要功能。
[+] : 在 MQTT 客户端中新增方法 "PublishAndWait",该方法允许使用 mtqsAtLeastOnce 或 mtqsExactlyOnce 发布消息并等待服务器处理完毕。
[+] : 在 Azure IoT MQTT 客户端中新增方法 "SendAndWait_DeviceToCloud",从设备向云端发送消息并等待服务器处理请求。
[+] : 在 TsgcHTTP2Client 中新增属性 Authentication,允许使用 OAuth2 协议作为身份验证发送 HTTP/2 请求。
[+] : 改进 HTTP/2 服务器,现在支持 ping 和心跳。
[+] : 改进 Google PubSub 客户端,新增事件 "OnAuthToken" 和 "OnAuthTokenError" 允许处理 OAuth2 事件流。
[+] : 改进 Google PubSub 客户端,新增方法 "RefreshToken" 允许重新连接到 OAuth2 会话。
[+] : 改进 Telegram 客户端,新增对代理的支持:HTTP、MTProto 和 Socks5。新增添加代理、删除、启用、禁用等方法。
[+] : 在服务器组件中新增方法 "Restart",在后台线程中重启服务器。
[+] : 改进服务器组件上的 WatchDog,新增属性 Monitor,若启用,客户端将尝试连接到服务器,若在设定的超时时间后失败,服务器将自动重启。

[*] : 修复 TsgcWebSocketClient 与 TLSOptions.IOHandler = iohSChannel 错误:关闭连接时显示异常 10004 的问题。
[*] : 修复 TsgcWebSocketClient 与 TLSOptions.IOHandler = iohSChannel 错误:在连接活跃时销毁 TsgcWebSocketClient 会发生线程锁定的问题。
[*] : 修复 Azure IoT MQTT 客户端错误:客户端收到服务器确认时未调用 OnMQTTPubAck 的问题。
[*] : 修复服务器连接在 OriginsAllowed 与 WebSocket 来源客户端不匹配时未关闭的错误。
[*] : 修复 ServerSentEvent JavaScript 代码包含无效文本的错误。
[*] : 修复编译自定义 Indy 版本的错误:sgcIdStackVCLPosix 使用了 IdCTypes 而非 sgcIdCTypes。
[*] : 修复 HeartBeat 错误:发送 ping 时发生异常,异常未被捕获并显示给用户的问题。
[*] : 修复 MQTT 客户端错误:使用 Qos <> mtqsAtLeastOnce 重新发送消息时发生异常,异常未被捕获并显示给用户的问题。
[*] : 修复 MQTT 客户端错误:使用 Qos <> mtqsAtLeastOnce 发布 Stream 且在超时前未收到服务器确认时,重新发送消息时负载为空的问题。
[*] : 修复启用 HTTP/2 时服务器组件上的内存泄漏。
[*] : 修复 HTTP/2 错误:另一端发送 InitialWindowSize 设置更新时的问题。
[*] : 修复 HTTP/2 客户端错误:同步 HTTP 请求期间发生断开连接时,客户端不停止等待结果的问题。
[*] : 修复 HTTP/2 服务器错误:在 HEADERS 之后更改 SETTINGS_INITIAL_WINDOW_SIZE 时,WindowSize 未正确调整的问题。
[*] : 修复 Binance Spot 用户流 API 错误:断开连接后删除内部 ListenKey 时发生错误,该字段未被清除导致无法重新连接的问题。
[*] : 修复服务器组件上的 WatchDog 错误:手动停止服务器时,WatchDog 尝试再次启动服务器而不是停止的问题。
[*] : 修复使用 Delphi 10.4 编译 sgcJSON_XSuperObject 和 sgcJSON_System 时的错误。
[*] : 修复 WebSocket Indy 服务器错误:若 Options.ReadTimeOut = 0,服务器会占用全部 CPU。现在 ReadTimeOut 的最小值为 1。
[*] : 修复 WebSocket Indy 服务器错误:若服务器发送关闭数据包且未被另一端接收/处理,连接会占用全部 CPU 的问题。

[/] : TsgcHTTP2Client 的 HTTP/2 异步方法,现已重命名为 GetAsync、PostAsync、PutAsync 等。
[/] : 演示现在按类别分组。