TsgcHTTP2Client › Events › OnHTTP2PushPromise
Viene generato quando il server invia una risorsa in push in modo che il client possa accettarla o annullarla.
property OnHTTP2PushPromise: TsgcHTTP2ClientPushPromiseEvent;
// TsgcHTTP2ClientPushPromiseEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const PushPromise: TsgcHTTP2_Frame_PushPromise; var Cancel: Boolean) of object
—
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.
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;