TsgcHTTP3Client › Ereignisse › OnAltSvc

OnAltSvc Ereignis

Wird ausgelöst, wenn der Server alternative Dienste über den alt-svc-Header ankündigt.

Syntax

TsgcAltSvcEvent = procedure(Sender: TObject;

  const aEntries: TsgcAltSvcList) of object;



property OnAltSvc: TsgcAltSvcEvent read FOnAltSvc write FOnAltSvc;

Parameter

NameTypBeschreibung
SenderTObjectDie TsgcHTTP3Client-Instanz, die das Ereignis ausgelöst hat.
aEntriesconst TsgcAltSvcListArray von TsgcAltSvcEntry-Records, die aus dem Header geparst wurden. Jeder besitzt Protocol (das ALPN-Token, zum Beispiel h3), Host, Port, MaxAge (Sekunden, die der Eintrag gültig bleibt) und Persist.

Hinweise

Der alt-svc-Header (RFC 7838) ist die Art, wie ein Server mitteilt, dass dieselbe Ressource auch anderswo erreichbar ist, typischerweise auf einem anderen Port oder über ein neueres Protokoll. Dieses Ereignis wird ausgelöst, sobald eine Antwort einen solchen Header enthält, wobei der Header bereits in Records geparst ist.

Verwenden Sie es, um herauszufinden, wo ein Dienst bevorzugt erreicht werden möchte, und um diesen Hinweis für MaxAge Sekunden zwischenzuspeichern. Ihn anzuwenden bedeutet, sich bei der nächsten Verbindung mit dem angekündigten Host und Port zu verbinden.

Das Ereignis wird nicht für einen Header ausgelöst, der lediglich zuvor angekündigte Alternativen löscht, und es wird nicht ausgelöst, wenn kein Eintrag geparst werden konnte. Der Client reagiert nicht von sich aus auf die Ankündigung: Der Wechsel des Endpunkts ist die Entscheidung der Anwendung.

Beispiel



procedure TfrmMain.OnAltSvcEvent(Sender: TObject; const aEntries: TsgcAltSvcList);

var

  i: Integer;

begin

  for i := 0 to Length(aEntries) - 1 do

    Log(Format('%s on %s:%d (max-age %d)', [aEntries[i].Protocol,

      aEntries[i].Host, aEntries[i].Port, aEntries[i].MaxAge]));

end;

Zurück zu Ereignissen