TsgcHTTP2Client › イベント › OnHTTP2ResponseFragment
FragmentedDataがデータを受信したときにストリーミングされる各レスポンスフラグメントに対して発火します。
property OnHTTP2ResponseFragment: TsgcHTTP2ClientResponseFragmentEvent;
// TsgcHTTP2ClientResponseFragmentEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const Request: TsgcHTTP2RequestProperty; const Fragment: TsgcHTTP2ResponseFragmentProperty) of object
—
OnHTTP2ResponseFragment は、部分的なレスポンスパケットを受信するたびに発生します。これにより、ペイロード全体を待たずにバイトが届いた時点でストリームを処理できます。通常、長期またはチャンクされた HTTP/2 ストリーム(イベントストリームやクロックストリームスタイルのエンドポイントなど)で使用され、FragmentedData を h2fdAll(最後のパケットが到着したときに OnHTTP2Response も発生)または h2fdOnlyFragmented(このイベントのみがディスパッチ)に設定することで有効になります。Fragment パラメーターは Data、DataString、DataUTF8 を通じて部分的なペイロードを公開します。Request パラメーターは元のリクエストを識別します。
oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2ResponseFragment := OnHTTP2ResponseFragmentEvent;
oClient.Get('https://http2.golang.org/clockstream');
procedure OnHTTP2ResponseFragmentEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient;
const Request: TsgcHTTP2RequestProperty; const Fragment: TsgcHTTP2ResponseFragmentProperty);
begin
ShowMessage(Fragment.DataString);
end;