TsgcHTTP2Client › Events › OnHTTP2PushPromise
Wordt geactiveerd wanneer de server een resource pusht zodat de client deze kan accepteren of annuleren.
property OnHTTP2PushPromise: TsgcHTTP2ClientPushPromiseEvent;
// TsgcHTTP2ClientPushPromiseEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const PushPromise: TsgcHTTP2_Frame_PushPromise; var Cancel: Boolean) of object
—
OnHTTP2PushPromise wordt geactiveerd wanneer de server een PUSH_PROMISE-frame verstuurt, waarmee wordt aangekondigd dat het op eigen initiatief een aanvullende resource gaat pushen (bijvoorbeeld een afbeelding of script dat is gekoppeld aan een pagina die de client zojuist heeft opgevraagd). De parameter PushPromise beschrijft de beloofde resource (methode, URL, headers) zodat de applicatie kan beslissen of deze relevant is. Stel Cancel in op True om de gepushte stream te weigeren (de client verstuurt een RST_STREAM) of laat het False om deze te accepteren, waarna de gegevens later worden geleverd via OnHTTP2Response / OnHTTP2ResponseFragment. Server push wordt alleen ontvangen wanneer Settings.EnablePush True is.
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;