sgcWebSockets Core 的附加包 Delphi 7 到 13 & C++ Builder

sgcCustomIndy:面向 sgcWebSockets Core 的定制 Indy 库

Indy 是一套开源的客户端与服务器通信库,sgcWebSockets 的部分组件以它为基础。标准 Indy 库不支持 ALPN,也不支持通过 OpenSSL 1.1.1 或 3.x 使用 TLS 1.3,因此 sgcWebSockets Enterprise 附带了一个支持这些能力的定制 Indy 版本。sgcCustomIndy 把同一个定制版本带给了 sgcWebSockets Core,否则只能升级到 Enterprise 版本才能获得它。

完整源代码
无需卸载任何东西
并排安装 同一个 IDE 定制单元带有 sgc 前缀,因此两个库可以共存于同一个 IDE 中
标准 Indy IdGlobal.pas
定制 Indy sgcIdGlobal.pas
0 需要卸载的 Indy 库 您 IDE 中已有的 Indy 保持安装状态
0 Delphi 7 上需要安装的 Indy 10 该库随产品包一起提供
3 标准 Indy 缺少的能力 ALPN、基于 OpenSSL 1.1.1 和 3.x 的 TLS 1.3、静态链接
1 静态 OpenSSL 所需的单元 在 uses 子句中加入 sgcIdSSLOpenSSL_Static
2 静态链接目标平台 Windows 32 位和 64 位,Delphi XE2 或更高版本

先了解两件事

这个产品包适合谁,以及谁已经拥有它。两个答案都很简短。

它是附加包,而不是单独下单的产品

sgcCustomIndy 附加在 sgcWebSockets Core 授权之上。它不能单独下单:它会作为第一个推荐的附加包出现在 Core 订单中,sgcAIsgcMQsgcSocialsgcAuthsgcHTTP 各个产品包走的也是同一个订单流程。

授权随附完整源代码,因此这些 Indy 单元可以在您自己的项目中编译和单步调试,和库的其余部分完全一样。

请先确认

Enterprise 和 All-Access 已经包含它

定制 Indy 库是 sgcWebSockets Enterprise 和 eSeGeCe All-Access 的一部分,通过 sgcVer.inc 中的 SGC_CUSTOM_INDY 编译器定义默认启用。如果您持有其中任意一种授权,本页面上的全部内容您都已经拥有,无需再添加任何东西。

Standard 和 Professional 版本使用标准 Indy 库。如果您正在权衡是升级版本还是购买这个产品包,请参阅您需要哪个版本

标准 Indy 库做不到的三件事

下面每一项都是 Indy 层本身的能力,而不是它上层某个组件的能力。正因如此,只有更换 Indy 库才能把它们打开。

ALPN协议协商

HTTP/2 赖以建立的扩展

HTTP/2 是在 TLS 握手期间协商出来的:客户端声明自己能讲哪些协议,服务器从中挑选一个。这个协商过程就是应用层协议协商 (ALPN),它发生在 TLS 层内部,位于任何 HTTP 组件所能触及的层级之下。标准 Indy 库不支持它,因此正是定制 Indy 库让 ALPN 以及随之而来的 HTTP/2 成为可能。

ALPN HTTP/2
TLS 1.3OpenSSL 1.1.1 和 3.x

现代 OpenSSL 分支,终于触手可及

TLS 1.3 需要 OpenSSL 1.1.1 或 OpenSSL 3.0.0,而标准 Indy 库不支持这些分支。定制 Indy 库支持它们,因此基于它构建的客户端或服务器可以与要求 TLS 1.3 的端点完成协商,而不再受限于较旧 OpenSSL API 所能提供的能力。

TLS 1.3 OpenSSL 1.1.1 OpenSSL 3.x
静态 OpenSSLWindows,Delphi XE2 或更高版本

把 OpenSSL 放进可执行文件

OpenSSL 可以直接链接进您的应用程序,不必在运行时从 libcryptolibssl DLL 中加载,这样一个使用 TLS 的应用程序就能以单个文件的形式部署。只有在使用定制 Indy 库时它才会生效,而这正是本产品包提供的东西。适用范围是 Delphi XE2 或更高版本上的 Windows 32 位和 64 位,下文有详细说明。

sgcIdSSLOpenSSL_Static 仅限 Windows Delphi XE2+

它与您已有的 Indy 并存

在 IDE 里替换 Indy 库是谁都不愿意做的事,所以这个产品包并不要求您这么做。定制 Indy 文件都加上了 sgc 前缀重新命名,IdGlobal 变成 sgcIdGlobal,两个版本可以毫无问题地共存。

标准 Indy,您 IDE 中已有的定制 Indy,由本产品包添加这意味着什么
IdGlobal.passgcIdGlobal.pas单元名称不同,因此在搜索路径上不会发生冲突
IdTCPClient.passgcIdTCPClient.pas两个库可以编译进同一个 IDE 和同一个项目
IdSSLOpenSSL.passgcIdSSLOpenSSL.pas您现有的 TLS 代码继续使用它原本使用的单元
无需卸载任何东西

您的 IDE 中原有的 Indy 保持安装并保持注册状态。没有哪一步需要您卸载某个包、之后再把它装回去,或者维护两套 IDE 配置。

现有项目不受影响

任何已经基于标准 Indy 库构建的东西,仍然基于它编译,使用的是逐字节完全相同的单元。定制版本是额外增加的,它不是替代品,也不是对您 IDE 施加的升级。

一个编译器定义

是否使用定制 Indy 库,由源代码目录下 sgcVer.inc 中的 SGC_CUSTOM_INDY 控制。它只是一个定义,因此再把定制版本关掉只是改一行代码的事。

一如既往,完整源代码

重命名后的 Indy 单元随授权以源代码形式提供,因此它们会按照您的项目设置编译,并且可以像库的其余部分一样在调试器中单步跟踪。

无需单独安装 Indy 10

Delphi 7 自带的是较旧的 Indy。否则,要在其中使用 sgcWebSockets,就得先自己把 Indy 10 安装进 IDE,而这一步往往在很多人写下第一行代码之前就把他们挡住了。有了随包捆绑的定制 Indy 库,这一步就不存在了。

过去的前置条件是什么样的

先找到 Indy 10 的源代码,把它装进一个从未附带它的 Delphi 7 IDE,让那些包能够编译通过,然后才回过头来开始用 sgcWebSockets。这是一件完全独立的工作,却要在您真正想做的事情之前完成。

对于仍在维护 Delphi 7 代码的团队来说,这个前置条件往往直接决定了一套组件库是否还有机会被评估。

有了这个产品包之后是什么样

定制 Indy 库随产品包一起提供,就放在和其他所有文件相同的源代码目录里。没有 Indy 10 需要去找,没有 Indy 10 需要装进 IDE,也没有 Indy 10 的版本需要和组件保持匹配。

这一条只关乎 Indy 10 这个前置条件。静态 OpenSSL 链接是另一项功能,有自己的适用范围,即 Windows 以及 Delphi XE2 或更高版本,所以它并不适用于 Delphi 7。

一个单元,一个部署文件

没有任何需要配置的东西。把 sgcIdSSLOpenSSL_Static 加到项目的 uses 子句里,例如加在主 .dpr 中,应用程序下次运行时就会使用链接进可执行文件的 OpenSSL,客户端和服务器组件都是如此。

// Project1.dpr
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 exactly as before.
平台 这种格式的目标文件可以链接到哪些平台
Windows 32 位 Windows 64 位 macOS iOS Android
编译器 较旧的版本会报告 E2045 Bad object file format
Delphi XE2 及更高版本 Delphi 7 到 XE
前置条件 没有它,静态链接不会生效
正在使用定制 Indy 库 已定义 SGC_CUSTOM_INDY
所链接的 OpenSSL 会不定期更新,以纳入最新的 OpenSSL 修复
OpenSSL 3.5.7

在不支持静态链接的版本或平台上,不会有任何东西出问题。应用程序会像以前一样继续加载 OpenSSL DLL,因此同一份源代码在任何地方都能构建。

各版本分别使用哪个 Indy

定制 Indy 库并不是新东西。sgcWebSockets Enterprise 一直构建于它之上,而这个产品包就是 Core 获得它的途径。

您持有的授权Indy 库说明
sgcWebSockets Standard标准没有 ALPN,也没有基于 OpenSSL 1.1.1 或 3.x 的 TLS 1.3
sgcWebSockets Professional标准没有 ALPN,也没有基于 OpenSSL 1.1.1 或 3.x 的 TLS 1.3
sgcWebSockets Enterprise定制已包含,默认启用
eSeGeCe All-Access定制已包含,默认启用
单独的 sgcWebSockets Core标准这正是本产品包所改变的
sgcWebSockets Core 加上 sgcCustomIndy定制与 Enterprise 使用的定制版本完全相同

它和 sgcIndy 不是一回事

sgcCustomIndy 是带 sgc 前缀的构建版本,它与您现有的 Indy 并存,供 sgcWebSockets 组件使用。sgcIndy 则是另一个完整的 Indy 包,单元沿用原有名称,您把它安装到 IDE 中以取代原来的 Indy,这样 SMTP、FTP 等标准 Indy 组件也能获得同样的现代 TLS。两个产品不同,用途也不同。

在 Core 订单中添加

sgcCustomIndy 单个开发者起价 €149。所有授权均包含完整源代码、1 年更新,以及 50% 到 70% 的续订折扣:续订 1 个包为 50%,2 个包为 60%,3 个及以上为 70%。sgcAI、sgcMQ、sgcSocial、sgcCustomIndy、sgcAuth、sgcHTTP 和 sgcREST 各算作一个包。

sgcCustomIndy

€149

提供 Single €149、Team €249 和 Site €399 授权。

  • sgcWebSockets Enterprise 所使用的定制 Indy 库
  • ALPN,以及随之而来的 HTTP/2
  • 基于 OpenSSL 1.1.1 和 3.x 的 TLS 1.3
  • Windows 上的静态 OpenSSL 链接,Delphi XE2 或更高版本
  • 单元带 sgc 前缀,因此您已安装的 Indy 不受影响
  • 在 Delphi 7 上无需单独安装 Indy 10
  • 完整源代码
  • 1 年更新

sgcCustomIndy 没有独立的订购页面,因为这个产品包从来不是您开启订单时选择的那一项。它作为第一个推荐的附加包出现在 sgcWebSockets Core 订单中,因此您在订购 sgcAI、sgcMQ 或 sgcSocial 时只需一次点击就能把它加上,它会随同一份授权一起到达。由于 sgcAuth 的 WebAuthn 支持以及 sgcHTTP 的 HTTP/2 和 gRPC 客户端都需要它,订购这两个产品包中的任意一个都会自动把 sgcCustomIndy 加入购物车。如果您已经通过 Enterprise 或 All-Access 拥有它,可以将其移除。

已经在使用 sgcWebSockets Enterprise 或 eSeGeCe All-Access?定制 Indy 库已经属于您,关于这些版本涵盖的内容,请查看 sgcWebSockets 价格

3,000+开发者
20+
761+组件
30+API 集成
5平台
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策

让 Indy 层跟上时代

支持 ALPN,因而支持 HTTP/2;支持基于 OpenSSL 1.1.1 和 3.x 的 TLS 1.3;在 Windows 上可将 OpenSSL 链接进可执行文件。所有这一切都与您已有的 Indy 并存,无需卸载任何东西,在 Delphi 7 上也不用再安装 Indy 10。

eSeGeCe 的其他产品

将 sgcCustomIndy 与我们的其他 Delphi、C++ Builder 和 .NET 组件库搭配使用。

sgcWebSockets

完整的组件库:WebSocket 客户端和服务器、HTTP/2、IoT、P2P 和 AI 组件。Enterprise 正是构建在这个定制 Indy 库之上。

了解更多 →

sgcIndy

沿用原有单元名称的完整 Indy 包,安装后取代您 IDE 中的 Indy,让 SMTP、FTP 等组件也获得现代 TLS。

了解更多 →

sgcAI

AI、LLM 和 MCP 组件。一个聊天组件即可接入 OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok 和 Mistral。

了解更多 →

sgcMQ

原生 MQTT、AMQP 0.9.1、AMQP 1.0、Apache Kafka 和 STOMP 客户端。独立产品,已包含 sgcWebSockets Core 运行时。

了解更多 →

sgcSocial

WhatsApp Business Cloud API 和 Telegram TDLib 客户端。独立产品,已包含 sgcWebSockets Core 运行时。

了解更多 →

sgcAuth

OAuth2 客户端、JWT 客户端和 WebAuthn 支持。独立产品,已包含 sgcWebSockets Core 运行时。

了解更多 →

sgcHTTP

HTTP/2 客户端、gRPC 客户端,以及 Google Cloud Pub/Sub、Calendar 和 FCM 客户端。独立产品,已包含 sgcWebSockets Core 运行时。

了解更多 →

sgcQUIC

基于 OpenSSL 3.5 原生 QUIC 引擎构建的 QUIC (RFC 9000) 与 HTTP/3 (RFC 9114) 客户端和服务器组件。

了解更多 →

sgcHTML

面向 Delphi、C++ Builder 和 .NET 的数据感知服务器端 HTML/UI 组件,基于 Bootstrap 5 和 htmx。

了解更多 →

sgcSign

企业级数字签名。XAdES、PAdES、CAdES 和 ASiC,支持 10 个密钥提供商和 21 个欧盟国家配置文件。

了解更多 →

sgcOpenAPI

OpenAPI 3.0 解析器和 SDK 生成器。几秒钟内将任何 OpenAPI 规范转换为强类型的 Delphi 客户端。

了解更多 →