sgcWebSockets 4.4.5

· リリース
sgcWebSockets 4.4.5 | eSeGeCe ブログ

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 を改善しました。TsgcWebSocketClient と同じように動作する新しいプロパティ Options.FragmentedMessages を追加しました。
[+] : TsgcWebSocketClient_WinHTTP を改善し、新しいイベント OnFragmented を追加しました。
[+] : TsgcWSPClient_STOMP に新しいプロパティ ConnectHeaders。connect メソッドでカスタムヘッダーを送信できます。

[*] : NotifyEvents = neAsynchronous で、イベントの処理中に CheckSynchronize が呼び出されると無効なポインターが発生するバグを修正しました(Dirk さん、ご報告ありがとうございます)
[*] : 分割メッセージの処理に関するバグ修正。2 番目のフラグメントが到着すると最初のフラグメントが上書きされていました(Patrik さん、ご報告ありがとうございます)
[*] : TsgcWebSocketClient のバグ修正。切断が発生すると内部スレッドが停止されますが、場合によってはこのメソッドが複数回呼び出されていました。
[*] : NotifyEvents = neAsynchronous で接続が切断され、処理待ちのメッセージが残っている場合にスレッドロックが発生する可能性があるバグを修正しました。
[*] : クライアント / サーバーがすでに破棄された状態で "Start" メソッドを実行するとアクセス違反エラーが発生するバグを修正しました。
[*] : TsgHTTP_OAuth2 のバグ修正。認可コードを受信した後、state の値が送信した値と比較されていませんでした。一致しない場合はエラーを返すようになりました。
[*] : Telegram クライアントのバグ修正。telegram のサーバーに接続した後、読み取りスレッドが開始されませんでした。
[*] : Telegram クライアントのバグ修正。チャットメッセージの Title が正しくデコードされていませんでした(Hyeonwoo さん、ご報告ありがとうございます)。
[*] : Rad Studio XE8 から 10.1 Berlin までのコンパイル時の警告を修正しました
[*] : Indy サーバーのバグ修正。接続がすでに閉じられているのに Buffer にまだ処理すべきデータが残っている場合、スレッドが終了せず CPU を使い切っていました。
[*] : HTTP.SYS サーバーのバグ修正。OnHTTPRequest イベントが設定されていない場合、サーバーから何も応答がありませんでした。404 エラーを返すようになりました。
[*] : HTTP.SYS サーバーの HTTP メソッドのデコードに関するバグ修正。GET と POST しかサポートされていませんでした。
[*] : HTTP.SYS サーバーのバグ修正。TsgcWSMSG オブジェクトで接続を破棄する際にメモリリークが発生していました。
[*] : HTTP.SYS サーバーのバグ修正。切断中にオブジェクトを解放しようとすると無効なポインターの例外が発生していました。
[*] : HTTP.SYS サーバーのバグ修正。サーバーの起動時にエラーが発生しても、実際のエラーメッセージがユーザーに通知されていませんでした。
[*] : TsgcWSAPI_SocketIO コンポーネントのバグ修正。API として ioAPI0 が選択されている状態で接続を初期化するときに発生していました(Jean さん、ご報告ありがとうございます)。
[*] : Windows 以外の OS で WriteTimeOut > 0 のときの接続に関するバグ修正。このプロパティは Windows にのみ適用されるようになりました。

[/] : TsgHTTP_OAuth2 コンポーネントを TsgcHTTP_OAuth2_Client に名称変更しました。
[/] : ユニット sgcHTTP_OAuth.pas を sgcHTTP_OAuth_Client.pas に名称変更しました
[/] : ユニット sgcHTTP_OAuth2.pas を sgcHTTP_OAuth2_Client.pas に名称変更しました

すべてのリリースの変更点はsgcWebSockets のリリースノートで確認できます。