TsgcHTTP3Client › Methoden › WebTransportConnect

WebTransportConnect Methode

Stellt eine WebTransport-Sitzung über eine Extended-CONNECT-Anfrage her.

Syntax

function WebTransportConnect(const aURL: string): TsgcWebTransportSession;

Parameter

NameTypBeschreibung
aURLconst stringAbsolute URL des WebTransport-Endpunkts, zum Beispiel https://www.example.com/wt.

Rückgabewert

Die hergestellte Sitzung oder nil, wenn der Server nicht mit Status 200 geantwortet hat. (TsgcWebTransportSession)

Hinweise

WebTransportConnect führt den WebTransport-Handshake durch, der im Entwurf WebTransport over HTTP/3 beschrieben ist: Es sendet eine Extended-CONNECT-Anfrage mit :method=CONNECT und :protocol=webtransport und verpackt bei :status=200 den resultierenden Stream in eine TsgcWebTransportSession. Die Session-ID ist die QUIC-Stream-ID des CONNECT-Streams.

Eine WebTransport-Sitzung verwendet eine dedizierte QUIC-Verbindung, daher wird eine bestehende Verbindung zuerst geschlossen und auf der neuen der Multi-Stream-Modus aktiviert. Der Aufruf blockiert, während er auf den Serverstatus wartet, begrenzt durch ConnectTimeout, und gibt bei jedem anderen Status als 200 nil zurück. Prüfen Sie zuerst ServerSupportsWebTransport, um früh zu scheitern.

Die Sitzung unterstützt nur Streams. Datagramme erfordern die QUIC-DATAGRAM-Erweiterung nach RFC 9221, die die integrierte OpenSSL-QUIC-Engine nicht bereitstellt. Aufgebaute Sitzungen werden in WebTransportSessions verfolgt.

Vom Peer geöffnete Streams werden nicht automatisch eingesammelt. Rufen Sie WebTransportProcessEvents regelmäßig auf, solange die Sitzung aktiv ist, damit eingehende Streams in den Sitzungsereignissen erscheinen.

In der .NET-Implementierung ist diese Methode nur ab net8.0 verfügbar und gibt eine nullable Referenz zurück. Die WebTransport-Unterstützung wird nur einkompiliert, wenn das bedingte Define SGC_WEBTRANSPORT aktiviert ist.

Beispiel



oSession := oClient.WebTransportConnect('https://www.example.com/wt');

if Assigned(oSession) then

begin

  // drive the session so peer streams are harvested

  oClient.WebTransportProcessEvents;

end;

Zurück zu Methoden