TsgcHTTP3Client › Ereignisse › OnGoAway
Wird ausgelöst, wenn der Server einen GOAWAY-Frame sendet, der eine ordnungsgemäße Beendigung ankündigt.
TsgcHTTP3GoAwayEvent = procedure(Sender: TObject;
aStreamId: Int64) of object;
property OnGoAway: TsgcHTTP3GoAwayEvent read FOnGoAway write FOnGoAway;
| Name | Typ | Beschreibung |
|---|---|---|
Sender | TObject | Die TsgcHTTP3Client-Instanz, die das Ereignis ausgelöst hat. |
aStreamId | Int64 | Die höchste Request-Stream-ID, die der Server noch verarbeiten darf. Anfragen auf Streams mit einer höheren ID wurden nicht bearbeitet und können gefahrlos auf einer neuen Verbindung wiederholt werden. |
GOAWAY (RFC 9114 Abschnitt 5.2) ist die Art, wie ein Server ankündigt, dass er die Verbindung ordnungsgemäß herunterfährt, typischerweise für einen Neustart oder das Leeren eines Load Balancers. Der Frame trifft auf dem Control-Stream des Servers ein und versetzt die Verbindung in den GoAway-Zustand.
Anfragen, die auf Streams bis einschließlich aStreamId bereits unterwegs sind, werden weiterhin verarbeitet und normal abgeschlossen. Alles darüber wurde abgelehnt und muss auf einer neuen Verbindung wiederholt werden, was genau der Sinn des Parameters ist: Er sagt Ihnen exakt, was verloren gegangen ist.
Starten Sie nach dem Ereignis keine neuen Anfragen auf dieser Verbindung. Öffnen Sie stattdessen eine neue Verbindung und lassen Sie die alte ihre ausstehende Arbeit beenden. OnDisconnect folgt, sobald der Server tatsächlich schließt.
procedure TfrmMain.OnGoAwayEvent(Sender: TObject; aStreamId: Int64);
begin
Log(Format('GOAWAY, last stream id: %d', [aStreamId]));
end;