HTTP/3 サーバー
TsgcHTTP3Server — QUIC 上でリクエストを処理する HTTP/3 サーバー(RFC 9114)です。TsgcQUICServer を継承し、UDP ポートをバインドし、証明書と鍵を読み込み、リクエストごとにイベントを発生させます。サーバープッシュ、WebTransport セッション、データグラムに対応し、Delphi、C++ Builder、.NET で利用できます。
TsgcHTTP3Server — QUIC 上でリクエストを処理する HTTP/3 サーバー(RFC 9114)です。TsgcQUICServer を継承し、UDP ポートをバインドし、証明書と鍵を読み込み、リクエストごとにイベントを発生させます。サーバープッシュ、WebTransport セッション、データグラムに対応し、Delphi、C++ Builder、.NET で利用できます。
UDP ポートをバインドし、PEM 証明書と鍵を読み込み、リクエストごとに OnH3Request で応答します。QPACK、サーバープッシュ、WebTransport は標準搭載です。OpenSSL 3.5 のネイティブ QUIC エンジン上に構築されています。
サーバーは UDP ポートをバインドし、証明書と鍵を読み込み、リクエストごとに OnH3Request を発生させます。WebTransport セッションは OnWebTransportSession で届きます。
uses
sgcHTTP3_Server;
var
oServer: TsgcHTTP3Server;
begin
oServer := TsgcHTTP3Server.Create(nil);
oServer.Port := 443;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.OnH3Request := OnH3RequestHandler; // fill the response here
oServer.Active := True;
end;
// includes: sgcHTTP3_Server.hpp
TsgcHTTP3Server *oServer = new TsgcHTTP3Server(NULL);
oServer->Port = 443;
oServer->QUICOptions->SSLOptions->CertFile = "cert.pem";
oServer->QUICOptions->SSLOptions->KeyFile = "key.pem";
oServer->OnH3Request = OnH3RequestHandler; // fill the response here
oServer->Active = true;
using esegece.sgcWebSockets;
var oServer = new TsgcHTTP3Server();
oServer.Port = 443;
oServer.QUICOptions.SSLOptions.CertFile = "cert.pem";
oServer.QUICOptions.SSLOptions.KeyFile = "key.pem";
oServer.OnH3Request += OnH3RequestHandler; // fill the response here
oServer.Active = true;
最もよく使うメンバー。
Port と Active が UDP リスナーをバインド・解放します。サーバーは TsgcQUICServer を継承しています。
QUICOptions.SSLOptions.CertFile と KeyFile が、TLS 1.3 ハンドシェイク用の PEM 証明書と秘密鍵を読み込みます。
OnH3Request は、解析済みのリクエストとともにリクエストごとに発生します。アプリケーションがレスポンスを埋め、ハンドラー内から追加のレスポンスをプッシュすることもできます。
OnH3TunnelData と TunnelSend(aConnection, …) が Extended CONNECT トンネルを扱います。SendDatagram は信頼性のないデータグラムを送信します。
OnWebTransportSession は、builtin エンジン上で独自の QUIC ストリームを持つ WebTransport セッション(RFC 9220)を渡します。
OnH3Connect、OnH3Disconnect、OnH3Exception が、コネクションのライフサイクルとエラーを報告します。