TsgcQUICClient › Ereignisse › OnQUICConnect
Wird ausgelöst, sobald die QUIC-Verbindung hergestellt wurde und der Client bereit ist, Daten zu senden.
property OnQUICConnect: TsgcQUICConnectEvent;
// TsgcQUICConnectEvent = procedure(Sender: TObject;
// const Connection: TsgcQUICConnection) of object;
| Name | Typ | Beschreibung |
|---|---|---|
Sender | TObject | Die TsgcQUICClient-Instanz, die das Ereignis ausgelöst hat. |
Connection | const TsgcQUICConnection | Die QUIC-Verbindung, die gerade hergestellt wurde. Stellt State, PMTU und DestinationConnectionId bereit. In .NET ist der Parameter ein TsgcQUICClientConnection und kann null sein. |
OnQUICConnect wird ausgelöst, nachdem der UDP-Socket geöffnet wurde und der TLS-1.3-Handshake erfolgreich war, der Client ist also bereit zum Senden. Es ist der Punkt, an dem Connect nicht mehr blockiert und True zurückgibt, und die richtige Stelle, um mit WriteData Ihre ersten Daten zu senden oder EnableMultiStream aufzurufen, wenn Sie mehr als den Standard-Stream benötigen.
Das Ereignis wird aus dem Lese-Thread der Verbindung ausgelöst. Die Komponente setzt NotifyEvents auf neNoSync, sodass der Handler nicht im Haupt-Thread läuft: Greifen Sie daraus niemals direkt auf VCL- oder FMX-Steuerelemente zu, sondern marshallen Sie in den Haupt-Thread. In .NET berücksichtigt die Zustellung die Eigenschaft NotifyEvents, und neSynchronous postet an den erfassten Synchronisationskontext.
Der Parameter Connection ist als Basisklasse TsgcQUICConnection typisiert, nicht als clientspezifische Klasse. Geben Sie ihn nicht frei, die Komponente verwaltet seine Lebensdauer.
oClient.OnQUICConnect := OnQUICConnectEvent;
oClient.Connect;
procedure OnQUICConnectEvent(Sender: TObject; const Connection: TsgcQUICConnection);
begin
Log('QUIC connected, PMTU ' + IntToStr(Connection.PMTU));
TsgcQUICClient(Sender).WriteData(TEncoding.UTF8.GetBytes('Hello QUIC'));
end;