eSeGeCe — 面向 Delphi 和 .NET 的企业级通信组件
精选 · sgcHTTP

HTTP/2 和 gRPC,原生运行于 Delphi

五个客户端组件,涵盖三大类任务。TsgcHTTP2Client 在一条 TLS 连接上以多路复用流的方式实现 HTTP/2 协议,并采用 HPACK 头部压缩。TsgcGRPCClient 是构建在其之上的 gRPC 客户端,用于一元和流式 Protocol Buffers 调用。另外三个类通过纯 HTTPS 对接 Google Cloud:Pub/Sub、Calendar 和 Firebase Cloud Messaging。sgcHTTP 是独立产品,已内置 sgcWebSockets Core 运行时。

  • 5 个客户端类
  • HTTP/2 · gRPC · Google Cloud
  • 多路复用流、HPACK、ALPN
  • Delphi 7 到 13 · C++ Builder

两个面板组件,三个 Google Cloud 客户端

sgcHTTP 是一个独立软件包。它内置其所基于的 sgcWebSockets Core 运行时,每份许可证都附带完整源代码,因此线路层的实现细节可以在您自己的调试器中单步跟踪。

2 面板组件 TsgcHTTP2ClientTsgcGRPCClient,位于同一个面板页面。
5 客户端类总数 HTTP/2、gRPC 和三个 Google Cloud 客户端。
3 Google Cloud 服务 Pub/Sub、Calendar 和 Firebase Cloud Messaging,纯 HTTPS。
1 独立安装程序 sgcWebSockets Core 运行时和 HTTP/TLS 层全部内置在这一个软件包中。
100% 包含源代码 每份许可证都附带全部五个客户端及所内置运行时的完整源代码。
sgcHTTP

面向 Delphi 和 C++ Builder 的 HTTP/2、gRPC 和 Google Cloud 客户端组件。独立软件包,内置 sgcWebSockets Core 运行时,提供完整源代码,并可免版税部署。

两个依赖,而不是五个

这五个类根据底层所需依赖清晰地分成两组。HTTP/2 和 gRPC 需要 ALPN,也就是需要 sgcCustomIndy。Google Cloud 除了 HTTPS 和一个服务账号之外什么都不需要,而内置的 Core 运行时已经提供了这些。

HTTP/2

在一条 TLS 连接上实现多路复用流

TsgcHTTP2Client 使用 HTTP/2(RFC 9113)协议:多个请求作为独立的流共享同一条 TCP 连接,因此一个响应慢不会阻塞排在它后面的其他请求。头部使用 HPACK 压缩,h2 协议在 TLS 握手期间通过 ALPN 协商,这也是该组件构建在 sgcCustomIndy 而非标准 Indy 库之上的原因。所有动词均已覆盖:ConnectGetPostPutPatchDeleteOptions,每一个都有同步调用和对应的 Async 版本。

查看 HTTP/2 客户端 →
gRPC

基于 HTTP/2 客户端的一元和流式 RPC

TsgcGRPCClient 构建在 HTTP/2 客户端之上,因此继承了多路复用连接,并在其上添加了 gRPC 线路格式:在 HTTP/2 流上传输带长度前缀的 Protocol Buffers 消息。CallCallAsync 覆盖一元 RPC,ServerStreamingCall 处理针对一个请求的响应流,OpenClientStream/OpenBidiStream 则覆盖客户端流式和双向流式 RPC。RetryPolicyInterceptorsServiceConfig 在不改动调用点的情况下添加重试行为和横切逻辑。

查看 gRPC 客户端 →
Google Cloud

Pub/Sub、Calendar 与推送通知,纯 HTTPS

另外三个类通过纯 HTTPS 对接 Google Cloud,使用 Google 服务账号进行身份验证,且都不需要 sgcCustomIndy:TsgcHTTPGoogleCloud_PubSub_ClientTsgcHTTPGoogleCloud_Calendar_ClientTsgcHTTPGoogleCloud_FCM_Client

查看它能做什么 →
逃生舱

服务器推送与分块响应体

事件呈现连接的整个生命周期:OnHTTP2ConnectOnHTTP2Response、用于分块响应体的 OnHTTP2ResponseFragment、用于服务器推送的 OnHTTP2PushPromise,以及 OnHTTP2GoAwayOnHTTP2Disconnect。流的生命周期中没有任何一环对您隐藏。

HTTP/2 能力全貌 →
跨平台

两个客户端需要一个依赖,另外三个则不需要

HTTP/2 客户端和 gRPC 客户端构建在 sgcCustomIndy 之上,其平台覆盖范围与 sgcWebSockets 本身一致。Google Cloud 客户端是纯 HTTPS,因此可以在 Core 运行时支持的任何平台上运行。从 Delphi 7 到 RAD Studio 13,以及 C++ Builder。

功能矩阵 →

每个组件的参考页面:

HTTP/2 与 gRPC,并肩使用

两个组件都声明在 sgcHTTP 单元中,TsgcGRPCClient 通过其 Client 属性携带自己的 HTTP/2 连接。同一份代码可在 Delphi 7 到 13 以及 C++ Builder 中编译。

uses
  sgcHTTP;
var
  HTTP2: TsgcHTTP2Client;
begin
  // HTTP/2: multiplexed requests over one TLS connection
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'https://api.example.com';
  HTTP2.OnHTTP2Response := HTTP2Response;
  HTTP2.Active := True;

  HTTP2.GetAsync('/v1/status');
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;
uses
  sgcHTTP;
var
  GRPC: TsgcGRPCClient;
begin
  // gRPC: built on the HTTP/2 client, unary and streaming RPC
  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client.Host := 'https://grpc.example.com';
  GRPC.OnGRPCResponse := GRPCResponse;

  GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;

procedure TForm1.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;

在 Object Pascal 和 C++ Builder 中是同一种形态。完整功能矩阵 →

两件值得先了解的事

sgcHTTP 需要您准备什么,以及不需要什么。两个答案都很简短,而且都写在这个页面上,而不是藏在小字条款里。

各客户端的依赖
客户端                              是否需要 sgcCustomIndy
TsgcHTTP2Client                     是,用于 ALPN
TsgcGRPCClient                      是,搭载在 TsgcHTTP2Client 之上
TsgcHTTPGoogleCloud_PubSub_Client   否,纯 HTTPS
TsgcHTTPGoogleCloud_Calendar_Client 否,纯 HTTPS
TsgcHTTPGoogleCloud_FCM_Client      否,纯 HTTPS

HTTP/2 在 TLS 握手期间通过 ALPN 协商 h2 协议。
  RAD Studio 自带的标准 Indy 库不支持 ALPN,
  因此 HTTP/2 和 gRPC 都改为构建在
  sgcCustomIndy 之上。

sgcHTTP 是独立产品

作为独立产品,已内置 sgcWebSockets Core 运行时:每个组件发出请求所使用的 HTTP/TLS 客户端栈,以及解码 Google Cloud 响应的 JSON 层。一个安装程序,开箱即含完整源代码。

HTTP/2 和 gRPC 需要 sgcCustomIndy

HTTP/2 的 ALPN 协商不受标准 Indy 库支持,因此 TsgcHTTP2Client 以及由此衍生的 TsgcGRPCClient 改为构建在 sgcCustomIndy 之上。订购 sgcHTTP 时会自动添加到您的购物车;已经拥有授权?可以在结账时移除。

Google Cloud 只需要 HTTPS

三个 Google Cloud 客户端使用 Google 服务账号的项目 id、客户端邮箱和私钥进行身份验证,并通过 Core 运行时的纯 HTTPS 栈调用 REST API。没有原生库,也不需要 sgcCustomIndy。

Delphi 和 C++ Builder

sgcHTTP 面向 Delphi 7 到 RAD Studio 13 以及 C++ Builder。同样这些组件也内置于 sgcWebSockets Enterprise 中,因此您现有的 Enterprise/All-Access 许可证可能已经覆盖了它们。免费试用版安装程序就是 sgcWebSockets All-Access 试用版,因此今天就可以评估全部五个类。

ALPN HPACK Protocol Buffers 服务账号 JWT 完整源代码

每个组件和属性 →

sgcHTTP 实现的是公开发布的 HTTP/2、gRPC 和 Google Cloud REST 接口,而不是对某个厂商 SDK 的封装,因此流、头部、RPC 和推送通知都是一等的方法和事件,完整源代码意味着中间没有任何一环是黑盒。

十二个组件库,一个工具箱

sgcHTTP 是 eSeGeCe 面向 Delphi、C++ Builder 和 .NET 的十二个组件库之一。它们共享同样的约定,提供完整源代码,并可免版税部署。

sgcHTTP

面向 Delphi 和 C++ Builder 的 HTTP/2 客户端、gRPC 客户端以及 Google Cloud Pub/Sub、Calendar 和 FCM 客户端。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcAuth

面向 Delphi 和 C++ Builder 的 OAuth2 客户端、JWT 客户端和 WebAuthn 支持。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcWebSockets

面向 Delphi、C++ Builder、Lazarus 和 .NET 的 WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI 及 30+ API 集成。它的 Enterprise 版本也包含 gRPC。

了解更多 →

sgcMQ

面向 Delphi 和 C++ Builder 的 MQTT、AMQP 0.9.1 和 1.0、Apache Kafka 与 STOMP 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcSocial

面向 Delphi 和 C++ Builder 的 Telegram 和 WhatsApp Business 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcHTML

面向 Delphi、C++ Builder 和 .NET 的服务器端 HTML 和界面组件,基于 Bootstrap 5 和 htmx。

了解更多 →

sgcQUIC

原始 QUIC 传输,以及 HTTP/3 客户端和服务器,并支持 WebTransport。作为 sgcWebSockets Enterprise 的附加组件。

了解更多 →

sgcAI

面向 Delphi 和 C++ Builder 的 AI、LLM 和 MCP 组件。一个组件即可对接七家 LLM 提供商,另有 MCP、嵌入和语音。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcOpenAPI

OpenAPI 3.x 解析器、原生 Pascal SDK 生成器、OpenAPI 服务器组件,以及 1,195+ 预构建云 SDK。

了解更多 →

sgcSign

文档使用 XAdES、PAdES、CAdES 和 ASiC,代码使用 Authenticode、ClickOnce、NuGet 和 VSIX。

了解更多 →

sgcBiometrics

面向 Delphi 和 C++ Builder 的 Windows Hello、指纹传感器和 Windows 生物特征框架。

了解更多 →

sgcIndy

更新后的 Indy TCP/IP 组件,为 Delphi 7 到 13 提供现代 TLS、IPv6 和 HTTP/2。

了解更多 →

查看价格和许可证 下载免费试用版

开发者怎么说

受到全球各地 Delphi、C++ Builder、Lazarus 和 .NET 开发者的信赖。

你们的 sgcWebSockets 库非常实用,而且易于设置。请继续保持!

Simone Moretti Delphi 开发者

sgcWebSockets 非常出色,你们的支持也是最棒的!

Christian Meyer 创始人兼首席技术官

非常感谢你们的帮助和支持,我很喜欢你们的组件。

Mark Steinfeld 首席技术官

您正在浏览 eSeGeCe 的 HTTP/2 与 gRPC 视角。

换个角度看看 →

在原生代码中使用现代 HTTP、gRPC 和 Google Cloud

多路复用 HTTP/2、流式 gRPC 以及三个 Google Cloud 客户端,内置 sgcWebSockets Core 运行时,开箱即含完整源代码。