sgcWebSockets 4.4.6 に含まれる新機能とバグ修正の一覧です。
[+] : サーバーコンポーネントに新しいイベント OnBeforeForwardHTTP を追加しました。HTTP リクエストを別のサーバーへ転送できます。(Olaf さん、ご提案ありがとうございます)
[+] : サーバーコンポーネントに新しいイベント OnAfterForwardHTTP を追加しました。転送した HTTP リクエストのレスポンスを知ることができます。
[+] : TsgcWebSocketHTTPServer の改善: push promise のファイルを設定する PushPromiseAddPreLoadLinks メソッドを使い、HTTP/2 Server Push をサポートするようになりました。
[+] : TsgcWebSocketHTTPServer の改善: HTTP/2 の cookie のサポートを追加しました。
[+] : TsgcWebSocketHTTPServer の改善: 新しいプロパティ HTTP2Options.Events では、HTTP/2 プロトコルで Connect / Disconnect イベントを呼び出すかどうかを設定します(既定では無効です)。
[+] : HTTP.SYS サーバーに新しいプロパティ ReadBufferSize を追加しました。読み取りバッファーのサイズを設定できます。既定値は 16384 です。
[+] : Telegram API の改善: ボタン(Callback と Url)付きのボットメッセージの送信をサポートするようになりました。
[+] : Telegram API の改善: 新しいイベント "OnNewCallbackQuery" を追加しました。ユーザーがどのボタンを選択したかを処理できます。
[+] : Google PubSub API の改善: 認証に JWT を使用するサービスアカウントをサポートするようになりました。
[+] : MQTT クライアントの改善: HeartBeat が Timeout をサポートするようになりました。一定時間が経過してもクライアントが送信済みの ping への応答を受信しない場合、接続を自動的に閉じます。
[*] : バグ修正: FastMM4 が有効な場合の ALPN プロトコルの書き込み。
[*] : バグ修正: HTTP/2 と FastMM4 が有効な場合、内部のフレームの読み取りで Out of Memory が発生していました。
[*] : バグ修正 Indy サーバー: ソケットのデータを読み取った後、処理すべきデータがさらにあるかどうかを確認する際に ReadTimeOut の値が使用されていませんでした。
[*] : バグ修正 TsgcHTTP2Client: RSTStream を受信したときにイベントが割り当てられておらず、アクセス違反が発生していました。
[*] : バグ修正 Azure IoT MQTT Client: "/" 文字を含むプロパティを渡したときに、正しくエンコードされていませんでした。
[*] : バグ修正: x64 で FastMM5 が有効な場合、HTTP.SYS サーバーを閉じるとき(SSL が有効な場合)にアクセス違反が発生していました。
[*] : バグ修正: DEBUG でスレッド名を割り当てる際、場合によっては誤ったスレッドに名前が割り当てられていました。
[*] : バグ修正: Authentication が有効でない場合、HTTP/2 プロトコルで Basic Authorization が読み取られていませんでした。
[*] : バグ修正 サーバーの HTTP/2 プロトコル: Header Frame がまだ処理されていない状態で Window_Update を読み取っていました。
[*] : バグ修正 HTTP/2 プロトコル: 接続の window update が更新されず、接続を閉じる際にエラーが発生していました。
[*] : バグ修正 HTTP/2 プロトコル: Static table の最後のヘッダーのデコード。
[*] : バグ修正 HTTP/2 プロトコル: クライアントコンポーネントで予期しないストリーム識別子を受信していました。
[*] : バグ修正 Google Calendar Client: 既定のリマインダーを読み取る際のアクセス違反。
[*] : バグ修正 TsgcWebSocketClient: Options.CleanDisconnect = True で、クローズメッセージの送信にエラーがあった場合、disconnect イベントが呼び出されませんでした。
[*] : バグ修正 TsgcWebSocketClient: notifyEvents = neNoSync の場合にサーバーへ再接続する際、スレッドロックが発生する可能性を回避しました。(Stefan さん、ご報告ありがとうございます)
[*] : バグ修正 TsgcWebSocketClient: OnDisconnect イベントが 2 回呼び出される可能性を回避しました。
[*] : バグ修正: Telegram Client のメモリリーク。
[*] : バグ修正 SignalR クライアント: SignalR ではないサーバーに接続した場合の invalid variant エラー。
[*] : バグ修正 SignalR クライアント: ConnectionTimeout のデコードで invalid variant エラーが発生する可能性。
[*] : バグ修正: TsgcWebSocketClient の LogFile がスレッドセーフではありませんでした。(Eddy さん、ご報告ありがとうございます)
[*] : バグ修正 TsgcWebSocketClient: TLS 1.3 を使用している場合、サーバーへ接続する際にエラーが発生することがありました。
[/] : TsgcWebSocketClient.FWSConnection は、OnDisconnect イベントが呼び出される前にクリアされるようになりました。
すべてのリリースの変更点はsgcWebSockets のリリースノートで確認できます。
