TsgcWebTransportSession › Methoden › Create

Create Methode

Erstellt eine Sitzung, die an eine Session-ID gebunden ist. Der HTTP/3-Client und -Server rufen dies für Sie auf; Anwendungen tun das nicht.

Syntax

constructor Create(aSessionId: Int64); virtual;

Parameter

NameTypBeschreibung
aSessionIdInt64Die QUIC-Stream-ID der Extended-CONNECT-Anfrage, die die Sitzung aufgebaut hat. Sie wird zur schreibgeschützten SessionId und verankert jeden Stream-Header und jedes Datagramm-Präfix in der Sitzung.

Hinweise

Sie rufen dies nicht auf. Eine Sitzung hat nur dann eine Bedeutung, wenn sie mit einer aktiven QUIC-Verbindung verdrahtet ist, und diese Verdrahtung ist nicht Teil des Konstruktors. Sitzungen erreichen Sie bereits fertig aufgebaut:

Der Konstruktor selbst setzt nur SessionId und erstellt die interne Stream-Liste sowie deren kritischen Abschnitt. Er weist keine Transport-Hooks zu. Eine Sitzung, die Sie selbst konstruieren, hat keine Möglichkeit, auf eine Verbindung zu schreiben: OpenStream würde Streams erzeugen, deren Bytes ins Leere laufen. Er ist public und virtual, damit ein eigener QUIC-Transport eine Sitzung selbst aufbauen und verdrahten kann und damit ein Nachfahre ihn erweitern kann.

Besitz. Die Sitzungsregistrierung der Verbindung besitzt die Sitzung und gibt sie frei, und der Destruktor der Sitzung gibt die Stream-Liste zusammen mit jedem darin enthaltenen Stream frei. Geben Sie niemals selbst eine Sitzung frei und behalten Sie niemals eine Referenz auf eine Sitzung oder auf einen ihrer Streams über die Lebensdauer des Clients oder der Verbindung hinaus, dem bzw. der sie gehört. Auf dem Client gibt das Freigeben des TsgcHTTP3Client jede Sitzung und jeden darunterliegenden Stream frei.

Dieses Mitglied ist derzeit nur in der Delphi/C++Builder-Implementierung verfügbar. Die .NET-Klasse besitzt einen entsprechenden Konstruktor, dieser ist jedoch internal und kann nicht aus Anwendungscode aufgerufen werden.

Beispiel


// Applications never construct a session. They receive one:

// Client: WebTransportConnect builds and wires it, or returns nil.
FSession := FClient.WebTransportConnect('https://127.0.0.1:4433/echo');
if Assigned(FSession) then
  FSession.OnStream := OnWTStream;
// FSession is owned by FClient.WebTransportSessions. Do not free it.

// Server: the session arrives already built and wired.
procedure TfrmServer.OnWTSession(Sender: TObject;
  const aConnection: TsgcQUICServerConnection;
  const aSession: TsgcWebTransportSession; var aAccept: Boolean);
begin
  aAccept := True;              // accept; the server registers and owns it
  aSession.OnStream := OnWTStream;
end;

Zurück zu Methoden