TsgcHTTP2ClientZdarzenia › OnHTTP2PushPromise

OnHTTP2PushPromise Zdarzenie

Wywoływane, gdy serwer wypycha zasób, umożliwiając klientowi jego zaakceptowanie lub anulowanie.

Składnia

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

Wartość domyślna

Uwagi

Zdarzenie OnHTTP2PushPromise jest wywoływane, gdy serwer wysyła ramkę PUSH_PROMISE, zapowiadając, że zamierza przesłać z własnej inicjatywy dodatkowy zasób (np. obraz lub skrypt skojarzony ze stroną, którą klient właśnie zażądał). Parametr PushPromise opisuje obiecany zasób (metoda, URL, nagłówki), dzięki czemu aplikacja może zdecydować, czy jest on istotny. Ustawienie parametru Cancel na True powoduje odrzucenie przesuwanego strumienia (klient wyśle RST_STREAM), a pozostawienie wartości False powoduje jego akceptację — dane zostaną wtedy dostarczone później przez zdarzenia OnHTTP2Response / OnHTTP2ResponseFragment. Przesyłanie przez serwer jest odbierane tylko wtedy, gdy właściwość Settings.EnablePush ma wartość True.

Przykład


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;

Powrót do Zdarzeń