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 保持安装并保持注册。不需要移除某个包、事后再恢复,也不需要保留两套 IDE 配置。
凡是已基于标准 Indy 库构建的内容,都继续针对它编译,所用单元逐字节相同。自定义版本是额外的,而不是替代品。
是否使用自定义 Indy 库由 sgcVer.inc 中的 SGC_CUSTOM_INDY 控制。再次关闭自定义版本只需改一行。
重命名后的 Indy 单元随许可证以源代码形式提供,因此会按您的项目设置编译,并像库的其余部分一样可在调试器中单步调试。
Delphi 7 自带较旧的 Indy。由于已捆绑自定义 Indy 库,无需再去寻找 Indy 10、将其安装到 IDE,或使其与组件保持匹配。
自定义 Indy 库并不是新东西。sgcWebSockets Enterprise 一直基于它构建,而这个扩展包就是 sgcWebSockets Core 获得它的途径。
无需任何配置。将 sgcIdSSLOpenSSL_Static 添加到 uses 子句中,例如添加到主 .dpr,应用下次运行时就会使用链入可执行文件的 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 库。
ALPN 和 HTTP/2,基于 OpenSSL 1.1.1 和 3.x 的 TLS 1.3,以及 Windows 上内置于可执行文件的 OpenSSL。全部与您已有的 Indy 并存。sgcWebSockets 试用版包含完整的 Enterprise 功能集,其中包括自定义 Indy。
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 运行时。
扩展包、附加组件及更多