TsgcHTTP2Client › Ereignisse › OnHTTP2PushPromise
Wird ausgelöst, wenn der Server eine Ressource pusht, sodass der Client sie akzeptieren oder abbrechen kann.
property OnHTTP2PushPromise: TsgcHTTP2ClientPushPromiseEvent;
// TsgcHTTP2ClientPushPromiseEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const PushPromise: TsgcHTTP2_Frame_PushPromise; var Cancel: Boolean) of object
—
OnHTTP2PushPromise wird ausgelöst, wenn der Server einen PUSH_PROMISE-Frame sendet und ankündigt, dass er im Begriff ist, aus eigener Initiative eine zusätzliche Ressource zu pushen (zum Beispiel ein Bild oder Skript, das einer gerade vom Client angeforderten Seite zugeordnet ist). Der Parameter PushPromise beschreibt die zugesagte Ressource (Methode, URL, Header), sodass die Anwendung entscheiden kann, ob sie interessant ist. Setzen Sie Cancel auf True, um den gepushten Stream abzulehnen (der Client sendet ein RST_STREAM), oder belassen Sie es auf False, um ihn zu akzeptieren; in diesem Fall werden die Daten später über OnHTTP2Response / OnHTTP2ResponseFragment zugestellt. Server Push wird nur empfangen, wenn Settings.EnablePush True ist.
oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2PushPromise := OnHTTP2PushPromiseEvent;
oClient.Get('https://http2.golang.org/serverpush');
procedure OnHTTP2PushPromiseEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient;
const PushPromise: TsgcHTTP2_Frame_PushPromise; var Cancel: Boolean);
begin
if PushPromise.URL = '/serverpush/static/godocs.js' then
Cancel := True
else
Cancel := False;
end;