Delphi & C++ Builder WebSocket 库 — 对比指南

面向 Delphi 和 C++ Builder 开发者的中立、有来源引用的 WebSocket 库调查(2026年):sgcWebSockets、Indy、ICS、TMS FNC WebSocket、mORMot 2 和独立 MQTT 库。每项功能声明均链接到项目官方文档。

开发者实际使用的六大库

每个库的一段摘要,并附有官方文档链接。详细对比请见下方矩阵。

Indy (Internet Direct)

Indy Working Group / Remy Lebeau · BSD / MPL (open source)

开源 TCP/UDP/原始套接字库,随最新 RAD Studio 一同提供。包含 120 多个高级协议客户端和服务器(HTTP、SMTP、POP3、IMAP、FTP、NNTP、IRC 等),但不包含原生 WebSocket 客户端或服务器——用户通常在 TIdHTTP / TIdHTTPServer 之上添加第三方 WebSocket 插件。

官方页面

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Free, source-available

由 François Piette 开发的开源 Delphi / C++ Builder 网络库。ICS V9.0 新增了 WebSocket 支持,以 TSslWebSocketCli(位于 OverbyteIcsWebSocketCli)和服务器类 THttpWSSrvConn 的形式构建于现有 ICS Web 服务器之上。

官方页面

TMS FNC WebSocket / TMS Sparkle

TMS Software · Commercial

TMS Software 提供两款相关产品。TMS Sparkle 是跨平台 HTTP 客户端/服务器框架(TMS XData 和 TMS RemoteDB 内部也使用)。TMS FNC WebSocket 是实现 RFC 6455 的独立 VCL + FireMonkey WebSocket 客户端和服务器组件。

官方页面

mORMot 2

Arnaud Bouchez / Synopse · MPL / GPL / LGPL (open source)

开源 Object Pascal SOA / ORM / MVC 框架,具有异步 HTTP 和 WebSocket 服务器、REST/JSON、OpenAPI / Swagger、LDAP、DNS、ACME 以及加密原语。Delphi 服务器单元仅支持 Windows;FPC(Free Pascal)可为 Linux、BSD 和 macOS 构建相同的服务器代码。所有平台均支持移动客户端。

官方页面

Stand-alone MQTT-only libraries

Various community authors · Varies (typically MIT / BSD / Apache)

GitHub 上发布了许多 Delphi 专用 MQTT 客户端。它们通常仅涵盖 MQTT 3.1.1 客户端,不包含 MQTT 5.0 服务器、AMQP、STOMP 或 WAMP,由个人作者维护。

官方页面

功能并排对比

勾号()表示项目文档中有原生支持记录。破折号()表示项目未原生提供此功能。波浪号(~)表示部分支持 / 通过插件实现 / 未明确记录——详见来源章节中我们可验证的内容。

协议、传输与许可证

16 行
功能 sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Stand-alone MQTT-only libraries
WebSocket 客户端 RFC 6455 客户端 ~
WebSocket 服务器 RFC 6455 服务器 ~
TLS 1.3 所提供传输层支持 TLS 1.3 ~ ~
HTTP/2 Client 原生 HTTP/2 客户端(RFC 7540 / 9113) ~
MQTT 内置 MQTT 3.1.1 / 5.0 客户端 ~ ~
AMQP 内置 AMQP 0.9.1 / 1.0 客户端
STOMP 内置 STOMP 1.0 / 1.2 客户端
WAMP 内置 WAMP v1 / v2 客户端
服务器推送 / 流 长连接推送或流传输 ~ ~ ~
自动重连 内置客户端自动重连 / 看门狗 ~ ~ ~ ~
per-message-deflate(RFC 7692) WebSocket 压缩扩展 ~ ~ ~
多平台 Windows / macOS / Linux / iOS / Android ~ ~
允许商业使用 许可证允许闭源商业使用
源代码可用 开发者可查看库的源代码
积极维护 过去 12–18 个月内有发布或标记活动 ~ ~
许可证模型 许可证类型 Commercial BSD / MPL (open source) Free, source-available Commercial MPL / GPL / LGPL (open source) Varies (typically MIT / BSD / Apache)
文档中的原生支持 未原生提供 ~ 部分 / 通过插件 / 未验证

迁移到 sgcWebSockets — 差异说明

从上述库切换时 API 和功能差异的简短说明。无意批评——仅是实用的映射关系。

从 Indy(Internet Direct)迁移

Indy 提供原始 HTTP 和 TCP 管道;sgcWebSockets 内置了 WebSocket 帧处理、ping/pong、自动重连、子协议(MQTT/AMQP/STOMP/WAMP)和 per-message-deflate。如果您目前有基于 Indy 的 HTTP 服务器,sgcWebSockets 提供独立的 TsgcWebSocketHTTPServer 而非 Indy 插件——现有 HTTP 路由需要在 sgc 服务器下重新实现,或在不同端口上并行运行两者。

从 ICS(Internet Component Suite)迁移

两个库均提供 WebSocket 客户端和基于 HTTP 的 WebSocket 服务器。命名消息协议(MQTT、AMQP、STOMP、WAMP)以及 AI/LLM 和交易所 API 客户端是 sgcWebSockets 独有的。如果您目前运行带有 WebSocket 路由的 ICS Web 服务器,sgcWebSockets 提供 TsgcWebSocketHTTPServer 作为即插即用的 HTTP+WS 主机,但路由注册 API 有所不同。

从 TMS FNC WebSocket / TMS Sparkle 迁移

sgcWebSockets 和 TMS FNC WebSocket 均实现了 RFC 6455 客户端和服务器。通过替换组件类并重新连接事件即可完成迁移。构建于其上的协议层(MQTT、AMQP、STOMP、WAMP)、HTTP/2 客户端和服务器以及 30 多个第三方 API 集成是 sgcWebSockets 独有的。如果您单独使用 TMS MQTT,sgcWebSockets 已将 MQTT 捆绑到同一套件中。

从 mORMot 2 迁移

mORMot 2 将 WebSocket 封装在其 SOA 层内;sgcWebSockets 提供独立的 WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP 组件,可放入任何 Delphi 项目。如果您的应用程序使用 mORMot 2 的 ORM 和 SOA 功能,切换到 sgcWebSockets 意味着需要重新实现 SOA 层;如果您仅将 mORMot 2 用于 WebSocket 传输,sgcWebSockets 是更直接的一对一替换。

从独立 MQTT 专用库迁移

如果您目前使用独立 MQTT 专用库,并开始添加 WebSocket、HTTP/2、AMQP 或 AI/LLM API 客户端,sgcWebSockets 将所有这些整合到一个套件中,提供单一许可证和统一的更新渠道。

每项声明均有链接

上面矩阵中的每个单元格都可追溯到这些官方文档页面、代码库或发布说明之一。所有 URL 在撰写时均经过 HEAD 检查。

来源URL
sgcWebSockets — 产品页面https://www.esegece.com/products/websockets/
sgcWebSockets — Delphi 功能矩阵https://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — 项目主页(indyproject.org)https://www.indyproject.org/
Indy — GitHub 仓库(IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — 发布版本(最新标记 10.6.3.14)https://github.com/IndySockets/Indy/releases
ICS — V9.0 发布说明(引入 WebSocket 支持)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — V9.6 发布说明(TLS 1.3 / 后量子密码)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — 下载页面(最新稳定版)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — 产品页面https://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — 产品页面https://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — GitHub 仓库(synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README(协议列表、支持目标)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — 发布版本(v2.4 稳定版)https://github.com/synopse/mORMot2/releases
Synopse 论坛(Object Pascal SOA / ORM)https://synopse.info/
GitHub 主题:delphi-mqtt(社区单用途 MQTT 客户端)https://github.com/topics/delphi-mqtt
RFC 6455 — WebSocket 协议https://datatracker.ietf.org/doc/html/rfc6455
RFC 7692 — WebSocket 压缩扩展(per-message-deflate)https://datatracker.ietf.org/doc/html/rfc7692

试用 sgcWebSockets

下载免费试用版,在您自己的应用程序中对比测试 sgcWebSockets 与当前库的性能。