WebBroker + WebSockets + HTTP/2
同一 TLS ポートで WebSocket アップグレードと HTTP/2 ストリームも受け付ける、クロスプラットフォームの WebBroker / DataSnap ホストです。
同一 TLS ポートで WebSocket アップグレードと HTTP/2 ストリームも受け付ける、クロスプラットフォームの WebBroker / DataSnap ホストです。
TsgcWSHTTPWebBrokerBridgeServer のクロスプラットフォーム版で、HTTP/2 フレーミングを追加しています。ALPN の h2 ネゴシエーションがアップグレードパスを処理するため、既存の WebBroker ハンドラーはそのまま使用できます。
TsgcWSHTTP2WebBrokerBridgeServer
Windows, macOS, Linux, iOS, Android
Enterprise
TWebModule をマウントし、SSLOptions と Specifications.HTTP2 を設定して Active := True にするだけで、HTTP/1.1、HTTP/2、WebSocket がすべて同一 TLS エンドポイントを共有します。
uses
sgcWebSocket, sgcWebSocket_DataSnap, WebReq, WebModuleUnit1;
var
Server: TsgcWSHTTP2WebBrokerBridgeServer;
begin
if WebRequestHandler <> nil then
WebRequestHandler.WebModuleClass := WebModuleClass;
Server := TsgcWSHTTP2WebBrokerBridgeServer.Create(nil);
Server.Port := 443;
Server.SSL := True;
Server.SSLOptions.CertFile := 'cert.pem';
Server.SSLOptions.KeyFile := 'key.pem';
Server.Specifications.HTTP := True;
Server.Specifications.HTTP2 := True;
Server.Specifications.RFC6455 := True;
Server.Active := True;
end;
OpenSSL Indy スタック上の WebBroker / DataSnap に HTTP/2 フレーミングを追加 ― 1 つの TLS エンドポイントで 3 つのプロトコルに対応します。
TLS ハンドシェイク中にサーバーは http/1.1 と h2 をアドバタイズし、クライアントがいずれかを選択します。WebSocket アップグレードは引き続き HTTP/1.1 パスを使用します。
複数の HTTP/2 ストリームが 1 つの TCP 接続を共有します。1 つのブラウザータブが HOL ブロッキングなしに数十の REST 呼び出しを並行して発行できます。
各 HTTP/2 リクエストはデコードされ WebBroker パイプラインを通じて再生されるため、既存の TWebModule、DataSnap REST、RAD Server ハンドラーはそのまま動作します。
Specifications.RFC6455 := True を設定することで、同一ポートで WebSocket アップグレードを継続して受け付けます。OnConnect / OnMessage をバインドしてライブチャネルを利用できます。
クロスプラットフォームの OpenSSL TLS です。カーネルモード TLS を使用する Windows 専用デプロイメントには、HTTP.SYS 上の TsgcWSServer_HTTPAPI_WebBrokerBridge を使用してください。
QUIC ベースの HTTP/3 には TsgcHTTP3Server を直接使用します ― レガシークライアントに TCP 上の HTTP/2、最新クライアントに QUIC 上の HTTP/3 を提供するときは両者を組み合わせます。
コンポーネントリファレンスへのディープリンク、すぐに実行できるデモプロジェクト、体験版のダウンロードをご利用ください。
| オンラインヘルプ — TsgcWSHTTP2WebBrokerBridgeServer 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | 開く | |
| デモプロジェクト — Demos\40.DataSnap\Server_Indy_HTTP2 すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています — 下のリンクから体験版をダウンロードしてください。 | 開く | |
| 技術ドキュメント (PDF) 機能、クイックスタート、Delphi および C++ Builder のコードサンプルと一次情報源リファレンス — 本コンポーネントのみ。 | 開く | |
| ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した包括的なマニュアルです。 | 開く |