WebBroker + WebSockets

基于 Indy 的 WebBroker / DataSnap 主机,同时在同一端口接受原生 WebSocket 升级请求。跨平台——支持 Windows、Linux 和 macOS。

TsgcWSHTTPWebBrokerBridgeServer

将 Embarcadero 的 WebBroker 管道(TWebModule、DataSnap REST、RAD Server)桥接到跨平台 Indy 服务器,并在同一监听器上原生处理 WebSocket 升级请求。

组件类

TsgcWSHTTPWebBrokerBridgeServer

支持平台

Windows, macOS, Linux, iOS, Android

版本

Enterprise

设置端口 + WebModule,开始监听

通过 WebRequestHandler 挂载您的 TWebModule,配置桥接服务器的端口和 SSL,为 WebSocket 升级路径附加 OnConnect,然后设置 Active := True。

uses
  sgcWebSocket, sgcWebSocket_DataSnap, WebReq, WebModuleUnit1;

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

  Server := TsgcWSHTTPWebBrokerBridgeServer.Create(nil);
  Server.Port := 8080;

  // the same server accepts WebSocket upgrades
  Server.OnMessage := procedure(Connection: TsgcWSConnection;
    const aText: string)
  begin
    Connection.WriteData('echo: ' + aText);
  end;

  Server.Active := True;
end;

内部功能

纯 Delphi 跨平台 WebBroker 主机——在 Linux 和 Windows 上均可运行,包括 DataSnap REST 和 RAD Server 端点。

WebBroker 分发

入站 HTTP 请求通过标准 WebRequestHandler / WebModule 链处理,现有 DataSnap REST 和 TWebModule 处理程序无需修改即可正常运行。

原生 WebSocket

WebSocket 升级由同一组件处理——OnMessageOnBinaryOnConnectOnDisconnect 均可与 HTTP 并行使用。

通过 OpenSSL 实现 TLS

为 HTTPS 配置 SSLOptions(CertFile / KeyFile / RootCertFile)——相同的 TLS 设置同时覆盖 HTTP 和 WebSocket 流量。

跨平台

可在 Indy 支持的任何平台上运行——Windows、Linux 64、macOS——是需要在 Windows 之外部署的 DataSnap 服务的首选。

CORS 与重定向

CORS 预检处理、基于路由的重定向和 IP 过滤均以属性形式暴露——无需在每个 WebModule 中手动实现。

配套 HTTP/2 服务器

如需为同一 WebBroker 技术栈添加 HTTP/2 支持,请使用同系组件 TsgcWSHTTP2WebBrokerBridgeServer——接口完全相同,另增 HTTP/2 帧支持。

规范与参考

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

文档与演示

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

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

准备好升级您的 DataSnap 服务器了吗?

下载免费试用版,为您现有的 WebBroker / DataSnap 模块添加 WebSocket 支持。