HTTP/2 の土台となる拡張機能。
- TLS ハンドシェイクの間に、クライアントが対応できるプロトコルを提示し、サーバーがその中からひとつを選びます。
- このネゴシエーションは TLS 層の内部で行われ、HTTP コンポーネントからは手が届きません。
- 標準の Indy ライブラリは対応していません。カスタム Indy ライブラリは ALPN を、そして HTTP/2 を利用可能にします。
標準の Indy ライブラリは ALPN に対応しておらず、OpenSSL 1.1.1 や 3.x を介した TLS 1.3 にも対応していません。sgcWebSockets Enterprise には、これに対応したカスタムビルドの Indy が付属しています。sgcCustomIndy は、その同じビルドを sgcWebSockets Core に提供し、IDE にすでにある Indy と並べてインストールします。
以下はすべて、その上に載るコンポーネントではなく、Indy 層そのものの機能です。そのため、Indy ライブラリを入れ替えることで有効になります。
IDE の Indy ライブラリを置き換える作業は誰もやりたくないものなので、このパックはそれを求めません。カスタム Indy のファイルには sgc プレフィックスが付き、IdGlobal は sgcIdGlobal になるため、両方のバージョンが問題なく共存します。
IDE にすでにある Indy は、インストールされたまま、登録されたまま残ります。パッケージを削除して後で復元したり、2 つの IDE プロファイルを使い分けたりする手順はありません。
標準の Indy ライブラリに対してすでにビルドしているものは、バイト単位で同じユニットに対してそのままコンパイルされます。カスタムビルドは置き換えではなく、追加です。
カスタム Indy ライブラリを使うかどうかは、sgcVer.inc の SGC_CUSTOM_INDY で制御されます。カスタムビルドを再び無効にするのは 1 行の変更で済みます。
名前を変更した Indy ユニットはライセンスにソースコードとして含まれるため、プロジェクトの設定でコンパイルでき、ライブラリの他の部分と同じようにデバッガーでステップ実行できます。
Delphi 7 には古い Indy が付属しています。カスタム Indy ライブラリが同梱されているため、Indy 10 を探したり、IDE にインストールしたり、コンポーネントとバージョンを合わせ続けたりする必要はありません。
カスタム Indy ライブラリは新しいものではありません。sgcWebSockets Enterprise がこれまで基盤としてきたもので、このパックは sgcWebSockets Core からそれを利用するための手段です。
設定は不要です。たとえばメインの .dpr の uses 句に sgcIdSSLOpenSSL_Static を追加するだけで、次回の実行からアプリケーションは実行ファイルにリンクされた OpenSSL を使用します。
uses sgcIdSSLOpenSSL_Static; // That is the whole configuration. No compiler // directive to enable, no OpenSSL API version to // choose. Remove the unit again and the application // goes back to loading the OpenSSL DLLs.
{$DEFINE SGC_CUSTOM_INDY}
// One define controls the custom Indy library.
// Static OpenSSL linking has no effect without it,
// and turning the custom build off again is a
// one line change.
静的リンクが利用できないバージョンやプラットフォームでも、問題は起きません。アプリケーションはこれまでどおり OpenSSL の DLL を読み込むため、同じソースがどこでもビルドできます。静的リンクが適用される範囲
この形式のオブジェクトファイルをリンクできる環境です。
古いバージョンではオブジェクトファイル形式が不正と報告されるため、静的リンクは Delphi XE2 から利用できます。
カスタム Indy ライブラリを使用していない場合、静的リンクは効果がありません。
sgcCustomIndy は sgcWebSockets Core のライセンスに付加されます。Core の注文内で最初のおすすめアドオンとして表示されるため、sgcAI、sgcMQ、sgcSocial を注文する際にワンクリックで追加でき、同じライセンスで提供されます。
Enterprise が使っているものと同じカスタムビルドを、Core の注文時に追加します。フルソースコードと 1 年間のアップデートが付きます。
sgcAuth の WebAuthn サポートと sgcHTTP の HTTP/2 および gRPC クライアントはこれを必要とするため、どちらのパックを注文しても sgcCustomIndy が必ず含まれます。パックの表示価格にすでに含まれています。
カスタム Indy ライブラリは sgcWebSockets Enterprise と eSeGeCe All-Access の一部で、デフォルトで有効です。どちらかをお持ちの場合、追加するものはありません。Standard と Professional は標準の Indy ライブラリを使用します。
IDE の Indy の代わりにインストールする完全な Indy パッケージである sgcIndy とは別のものです。必要なエディションを確認する
価格を見るALPN と HTTP/2、OpenSSL 1.1.1 と 3.x による TLS 1.3、そして Windows での実行ファイル内 OpenSSL。そのすべてを、すでにお使いの Indy と並べて利用できます。sgcWebSockets の体験版には、カスタム Indy を含む Enterprise の全機能が入っています。
sgcCustomIndy は、sgcWebSockets Core ランタイムを基盤とするパックのひとつです。共通の規約を持ち、フルソースコード付きで、ロイヤリティフリーで配布できます。
sgcAI、sgcMQ、sgcSocial、sgcCustomIndy に同梱されるランタイム: HTTP、TLS、JSON、TCP、UDP。このパックが付加されるライセンスです。
HTTP サーバー、HTTP/2 クライアント、gRPC クライアント、Google Cloud の Pub/Sub、Calendar、FCM クライアント。sgcHTTP を注文すると、必ず sgcCustomIndy が含まれます。
OAuth2 クライアント、JWT クライアント、WebAuthn サポート。sgcAuth を注文すると、必ず sgcCustomIndy が含まれます。
Delphi と C++ Builder 向けの AI、LLM、MCP コンポーネント。sgcWebSockets Core ランタイムが同梱されています。
MQTT、AMQP 0.9.1 と 1.0、Apache Kafka、STOMP クライアント。sgcWebSockets Core ランタイムが同梱されています。
パック、アドオンなど