TsgcHTTP2ClientEvents › OnHTTP2PushPromise

OnHTTP2PushPromise Event

Viene generato quando il server invia una risorsa in push in modo che il client possa accettarla o annullarla.

Sintassi

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

Valore predefinito

Note

OnHTTP2PushPromise viene generato quando il server invia un frame PUSH_PROMISE, annunciando che sta per fare il push di una risorsa aggiuntiva di propria iniziativa (ad esempio un'immagine o uno script associato a una pagina che il client ha appena richiesto). Il parametro PushPromise descrive la risorsa promessa (metodo, URL, intestazioni), in modo che l'applicazione possa decidere se è interessante. Imposti Cancel su True per rifiutare lo stream pushato (il client invierà un RST_STREAM) oppure lo lasci su False per accettarlo, nel qual caso i dati verranno consegnati in seguito tramite OnHTTP2Response / OnHTTP2ResponseFragment. Il server push viene ricevuto solo quando Settings.EnablePush è True.

Esempio


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;

Torna agli Eventi