TsgcQUICServer › Ereignisse › OnQUICDisconnect

OnQUICDisconnect Ereignis

Wird ausgelöst, wenn eine QUIC-Verbindung geschlossen wurde, und meldet den Fehlercode und den Grund.

Syntax

property OnQUICDisconnect: TsgcQUICServerDisconnectEvent;
// TsgcQUICServerDisconnectEvent = procedure(Sender: TObject; const aConnection: TsgcQUICServerConnection; aCode: Int64; const aReason: string) of object

Standardwert

—

Parameter

NameTypBeschreibung
SenderTObjectDie TsgcQUICServer-Instanz.
aConnectionconst TsgcQUICServerConnectionDie Verbindung, die geschlossen wird. Sie ist innerhalb des Handlers noch lesbar, wird aber unmittelbar danach freigegeben. Siehe TsgcQUICServerConnection.
aCodeInt640 bei einem normalen Schließen. Bei einem Fehler enthält es den von SSL_get_error zurückgegebenen OpenSSL-Fehlercode, nicht einen QUIC-Anwendungsfehlercode.
aReasonconst stringEine leere Zeichenfolge bei einem normalen Schließen, andernfalls das feste Literal 'SSL error'. Es handelt sich nicht um eine vom Peer gelieferte Begründung.

Hinweise

OnQUICDisconnect wird ausgelöst, wenn der Server eine Verbindung nicht mehr bedient, und zwar in einem von zwei Fällen:

Das Ereignis wird nicht für Verbindungen ausgelöst, die durch Stop beendet werden, was die gesamte Verbindungsliste auf einmal leert. Verlassen Sie sich daher nicht darauf, um beim Herunterfahren eine Bereinigung pro Sitzung durchzuführen, erledigen Sie das stattdessen rund um Ihren Stop-Aufruf.

Nachdem der Handler zurückgekehrt ist, wird die Verbindung vom Server entfernt und freigegeben. Geben Sie hier jeden sitzungsbezogenen Kontext frei und verwerfen Sie jede Referenz auf aConnection, eine spätere Verwendung liest freigegebenen Speicher.

Die Delphi-Parameter aCode und aReason transportieren OpenSSL-Diagnosen statt Informationen auf QUIC-Ebene. In .NET tragen dieselben Parameter den QUIC-Anwendungsfehlercode und die Ausnahmemeldung, und .NET löst das Ereignis aus, wenn eine Verbindung durch Stop geschlossen wird.

Dieses Ereignis läuft im Hintergrund-Listener-Thread des Servers, marshallen Sie daher zum Haupt-Thread, bevor Sie die UI ansprechen.

Beispiel


procedure OnQUICDisconnectEvent(Sender: TObject; const aConnection: TsgcQUICServerConnection; aCode: Int64; const aReason: string);
begin
  Log('QUIC disconnected: ' + aReason);
end;

Zurück zu Ereignissen