TsgcHTTP2ClientEvents › OnHTTP2PushPromise

OnHTTP2PushPromise Gebeurtenis

Wordt geactiveerd wanneer de server een resource pusht zodat de client deze kan accepteren of annuleren.

Syntaxis

property OnHTTP2PushPromise: TsgcHTTP2ClientPushPromiseEvent;
// TsgcHTTP2ClientPushPromiseEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const PushPromise: TsgcHTTP2_Frame_PushPromise; var Cancel: Boolean) of object

Standaardwaarde

Opmerkingen

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.

Voorbeeld


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;

Terug naar gebeurtenissen