TsgcHTTP3Client › Ereignisse › OnPushPromise

OnPushPromise Ereignis

Wird ausgelöst, wenn der Server zusagt, eine Ressource zu pushen, bevor die gepushte Antwort eintrifft.

Syntax

TsgcHTTP3PushPromiseEvent = procedure(Sender: TObject; aPushId: Int64;

  const aHeaders: TStringList) of object;



property OnPushPromise: TsgcHTTP3PushPromiseEvent read FOnPushPromise

  write FOnPushPromise;

Parameter

NameTypBeschreibung
SenderTObjectDie TsgcHTTP3Client-Instanz, die das Ereignis ausgelöst hat.
aPushIdInt64Bezeichner des versprochenen Push. Übergeben Sie ihn an CancelPush, um den Push abzulehnen.
aHeadersconst TStringListHeader der Anfrage, die der Server in Ihrem Namen beantwortet, einschließlich der Pseudo-Header :method und :path. Die Liste ist nur innerhalb des Handlers gültig.

Hinweise

Ein PUSH_PROMISE-Frame (RFC 9114 Abschnitt 7.2.5) teilt dem Client mit, dass der Server eine Ressource senden möchte, die nicht angefordert wurde, weil er erwartet, dass der Client sie benötigen wird. Das Versprechen enthält die Anfrage-Header, die der Push beantworten wird, sodass der Client entscheiden kann, ob er die Ressource möchte, bevor die Bytes aufgewendet werden.

Dieses Ereignis ist genau dieser Entscheidungspunkt. Wenn die Ressource bereits zwischengespeichert oder schlicht unerwünscht ist, rufen Sie CancelPush mit aPushId aus dem Handler auf. Andernfalls tun Sie nichts und die gepushte Antwort wird später über OnPush geliefert und trägt dieselbe Push-ID.

Server Push ist deaktiviert, bis der Client das Limit mit SetMaxPushId anhebt, daher wird dieses Ereignis nie ausgelöst, sofern dieser Aufruf nicht erfolgt ist.

Beispiel



procedure TfrmMain.OnPushPromiseEvent(Sender: TObject; aPushId: Int64;

  const aHeaders: TStringList);

begin

  if aHeaders.Values[':path'] = '/already-cached.css' then

    oClient.CancelPush(aPushId);

end;

Zurück zu Ereignissen