TsgcHTTP2Client › Eventos › OnHTTP2PushPromise
Se activa cuando el servidor inserta un recurso para que el cliente pueda aceptarlo o cancelarlo.
property OnHTTP2PushPromise: TsgcHTTP2ClientPushPromiseEvent;
// TsgcHTTP2ClientPushPromiseEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const PushPromise: TsgcHTTP2_Frame_PushPromise; var Cancel: Boolean) of object
—
OnHTTP2PushPromise se activa cuando el servidor envía un frame PUSH_PROMISE, anunciando que está a punto de enviar un recurso adicional por iniciativa propia (por ejemplo, una imagen o un script asociado con una página que el cliente acaba de solicitar). El parámetro PushPromise describe el recurso prometido (método, URL, encabezados) para que la aplicación pueda decidir si le interesa. Establezca Cancel en True para rechazar el flujo enviado (el cliente enviará un RST_STREAM) o déjelo en False para aceptarlo; en ese caso, los datos se entregarán posteriormente a través de OnHTTP2Response / OnHTTP2ResponseFragment. El Server Push solo se recibe cuando Settings.EnablePush es 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;