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 という新しいプロパティを追加し、有効にするとクライアントがサーバーへの接続を試み、設定した TimeOut を過ぎても失敗する場合はサーバーが自動的に再起動されます。
[*] : バグ修正。TsgcWebSocketClient で TLSOptions.IOHandler = iohSChannel の場合、接続を閉じるときに例外 10004 が表示されていました。
[*] : バグ修正。TsgcWebSocketClient で TLSOptions.IOHandler = iohSChannel の場合、接続がアクティブな状態で TsgcWebSocketClient を破棄するとスレッドロックが発生していました。
[*] : バグ修正。Azure IoT MQTT クライアントで、クライアントがサーバーから確認応答を受信しても OnMQTTPubAck が呼び出されませんでした。
[*] : バグ修正。OriginsAllowed が WebSocket クライアントのオリジンと一致しない場合に、サーバーの接続が閉じられませんでした。
[*] : バグ修正。ServerSentEvent の JavaScript コードに不正なテキストが含まれていました。
[*] : バグ修正。Custom Indy バージョンのコンパイル時、sgcIdStackVCLPosix が sgcIdCTypes ではなく IdCTypes を使用していました。
[*] : バグ修正。HeartBeat で ping の送信中に例外が発生した場合、例外が捕捉されずユーザーに表示されていました。
[*] : バグ修正。MQTT クライアントで、Qos <> mtqsAtLeastOnce のメッセージを再送信中に例外が発生した場合、例外が捕捉されずユーザーに表示されていました。
[*] : バグ修正。MQTT クライアントで Qos <> mtqsAtLeastOnce のストリームをパブリッシュし、タイムアウト前にサーバーから確認応答を受信しなかった場合、メッセージを再送信するときにペイロードが空になっていました。
[*] : HTTP/2 が有効な場合のサーバーコンポーネントのメモリリークを修正しました。
[*] : バグ修正。HTTP/2 で相手のピアが InitialWindowSize の設定更新を送信したときの問題を修正しました。
[*] : バグ修正。HTTP/2 クライアントで、同期 HTTP リクエストの実行中に切断が発生した場合、クライアントが結果の待機を停止しませんでした。
[*] : バグ修正。HTTP/2 サーバーで、HEADERS の後に SETTINGS_INITIAL_WINDOW_SIZE が変更された場合、WindowSize が正しく調整されませんでした。
[*] : バグ修正。Binance Spot User Stream 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 などに名称変更されました。
[/] : デモがカテゴリー別にグループ分けされました。
すべてのリリースの変更点はsgcWebSockets のリリースノートで確認できます。
