精选 · 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 面板组件 TsgcHTTP2Client 和 TsgcGRPCClient,位于同一个面板页面。
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 库之上的原因。所有动词均已覆盖:Connect、Get、Post、Put、Patch、Delete 和 Options,每一个都有同步调用和对应的 Async 版本。

查看 HTTP/2 客户端 →
gRPC

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

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

查看 gRPC 客户端 →
Google Cloud

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

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

查看它能做什么 →
逃生舱

服务器推送与分块响应体

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

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 运行时。

了解更多 →

sgcREST

面向 Delphi 和 C++ Builder 的 REST 服务器、OpenAPI 服务器和 OpenAPI 客户端组件。可从 OpenAPI 3.x 契约发布 REST API,或调用任何以 OpenAPI 描述的 API。独立产品,随附 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。

了解更多 →

sgcPDF

使用纯 Object Pascal 创建、编辑、查看、签名、涂黑并验证 PDF 文件,无需部署任何 DLL。单独授权销售。

了解更多 →

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 视角。

换个角度看看 →
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策

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

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