WebBroker + WebSockets + HTTP/2

跨平台的 WebBroker / DataSnap 主机,可在同一 TLS 端口上接受原生 WebSocket 升级和 HTTP/2 流。

TsgcWSHTTP2WebBrokerBridgeServer

TsgcWSHTTPWebBrokerBridgeServer 的跨平台兄弟组件,在其之上加入 HTTP/2 分帧 — ALPN h2 协商负责升级路径,您的 WebBroker 处理程序保持不变。

组件类

TsgcWSHTTP2WebBrokerBridgeServer

支持平台

Windows, macOS, Linux, iOS, Android

版本

Enterprise

配置 TLS,启用 HTTP/2,开始监听

挂载您的 TWebModule,配置 SSLOptions 和 Specifications.HTTP2,然后设置 Active := True — HTTP/1.1、HTTP/2 和 WebSocket 全部共享同一个 TLS 端点。

uses
  sgcWebSocket, sgcWebSocket_DataSnap, WebReq, WebModuleUnit1;

var
  Server: TsgcWSHTTP2WebBrokerBridgeServer;
begin
  if WebRequestHandler <> nil then
    WebRequestHandler.WebModuleClass := WebModuleClass;

  Server := TsgcWSHTTP2WebBrokerBridgeServer.Create(nil);
  Server.Port := 443;
  Server.SSL  := True;
  Server.SSLOptions.CertFile := 'cert.pem';
  Server.SSLOptions.KeyFile  := 'key.pem';
  Server.Specifications.HTTP   := True;
  Server.Specifications.HTTP2  := True;
  Server.Specifications.RFC6455 := True;

  Server.Active := True;
end;

内部功能

基于 OpenSSL Indy 栈的 WebBroker / DataSnap,加入 HTTP/2 分帧 — 一个 TLS 端点,三种协议。

由 ALPN 驱动的分发

在 TLS 握手期间,服务器会通告 http/1.1h2,由客户端选择其一。WebSocket 升级仍然走 HTTP/1.1 路径。

HTTP/2 多路复用

多个 HTTP/2 流共享一条 TCP 连接 — 单个浏览器标签页可以并行发起数十个 REST 调用,不会产生队头阻塞。

WebBroker 处理程序无需更改

每个 HTTP/2 请求都会被解码并通过 WebBroker 流水线重放,因此现有的 TWebModule、DataSnap REST 和 RAD Server 处理程序无需更改即可工作。

与 WebSocket 共存

设置 Specifications.RFC6455 := True,将 WebSocket 升级保留在同一端口上。绑定 OnConnect / OnMessage 以处理实时通道。

基于 OpenSSL 的 TLS

跨平台的 OpenSSL TLS。对于仅 Windows 的部署,如需使用内核态 TLS,请使用 HTTP.SYS 上的兄弟组件 TsgcWSServer_HTTPAPI_WebBrokerBridge

HTTP/3 路径

对于基于 QUIC 的 HTTP/3,请直接使用 TsgcHTTP3Server — 当您希望为旧版客户端提供基于 TCP 的 HTTP/2、为现代客户端提供基于 QUIC 的 HTTP/3 时,可以将两者搭配使用。

规范与参考

本组件实现协议的权威来源。

文档与演示

直接访问组件参考文档,获取即用型演示项目,并下载试用版。

在线帮助 — TsgcWSHTTP2WebBrokerBridgeServer 本组件的完整属性、方法和事件参考。
演示项目 — Demos\40.DataSnap\Server_Indy_HTTP2 即用型示例项目,随 sgcWebSockets 包提供——请在下方下载试用版。
技术文档 (PDF) 本组件的功能介绍、快速入门、Delphi & C++ Builder 代码示例及主要来源参考。
用户手册 (PDF) 涵盖库中所有组件的综合手册。

准备好为您的 DataSnap 服务器添加 HTTP/2 了吗?

下载免费试用版,通过单个 Delphi DataSnap 主机同时提供 HTTP/1.1、HTTP/2 和 WebSocket 服务。