Delphi y C++ Builder: bibliotecas WebSocket — guía comparativa

Un análisis neutral y con fuentes citadas de las bibliotecas WebSocket disponibles para desarrolladores de Delphi y C++ Builder en 2026: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2 y bibliotecas MQTT independientes. Cada afirmación sobre características enlaza con la documentación oficial del proyecto.

Seis bibliotecas que se usan realmente

Un resumen de un párrafo de cada biblioteca, con enlace a la documentación oficial. La comparativa detallada está en la matriz de más abajo.

Indy (Internet Direct)

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

Biblioteca TCP/UDP/sockets en bruto de código abierto incluida con todas las instalaciones recientes de RAD Studio. Ofrece más de 120 clientes y servidores de protocolos de alto nivel (HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC y más), pero no incluye un cliente ni un servidor WebSocket nativo: las personas usuarias suelen añadir un complemento WebSocket de terceros encima de TIdHTTP / TIdHTTPServer.

Página oficial

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Gratis, con código fuente disponible

Biblioteca de red de código abierto para Delphi / C++ Builder de François Piette. El soporte de WebSocket se añadió en ICS V9.0 como TSslWebSocketCli (en OverbyteIcsWebSocketCli) y una clase de servidor THttpWSSrvConn sobre el servidor web existente de ICS.

Página oficial

TMS FNC WebSocket / TMS Sparkle

TMS Software · Comercial

TMS Software ofrece dos productos relevantes. TMS Sparkle es un framework HTTP cliente/servidor multiplataforma (usado también internamente por TMS XData y TMS RemoteDB). TMS FNC WebSocket es un par cliente-servidor WebSocket independiente para VCL + FireMonkey que implementa RFC 6455.

Página oficial

mORMot 2

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

Framework SOA / ORM / MVC en Object Pascal de código abierto con servidor HTTP y WebSocket asíncrono, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME y primitivas criptográficas. Las unidades de servidor para Delphi apuntan únicamente a Windows; FPC (Free Pascal) compila el mismo código de servidor para Linux, BSD y macOS. Los clientes móviles se soportan en todas las plataformas.

Página oficial

Bibliotecas independientes solo de MQTT

Varios autores de la comunidad · Varía (normalmente MIT / BSD / Apache)

Hay varios clientes MQTT de propósito único para Delphi publicados en GitHub. Suelen cubrir solo el lado cliente de MQTT 3.1.1, no incluyen servidor MQTT 5.0, AMQP, STOMP ni WAMP, y los mantienen autores individuales.

Página oficial

Comparativa lado a lado de características

Una marca () significa que el proyecto documenta soporte nativo. Un guion () significa que el proyecto no lo ofrece de forma nativa. Una tilde (~) significa parcial / mediante complemento / no documentado explícitamente; consulta la sección Fuentes para ver lo que pudimos verificar.

Protocolos, transporte, licencias

16 filas
Característica sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Bibliotecas independientes solo de MQTT
Cliente WebSocket Cliente RFC 6455 ~
Servidor WebSocket Servidor RFC 6455 ~
TLS 1.3 El transporte proporcionado admite TLS 1.3 ~ ~
Cliente HTTP/2 Cliente HTTP/2 nativo (RFC 7540 / 9113) ~
MQTT Cliente MQTT 3.1.1 / 5.0 incorporado ~ ~
AMQP Cliente AMQP 0.9.1 / 1.0 incorporado
STOMP Cliente STOMP 1.0 / 1.2 incorporado
WAMP WAMP v1 / v2 client built in
Server push / streaming Conexión push o streaming de larga duración ~ ~ ~
Reconexión automática Reconexión automática / watchdog del cliente incorporados ~ ~ ~ ~
per-message-deflate (RFC 7692) Extensión de compresión de WebSocket ~ ~ ~
Multiplataforma Win / macOS / Linux / iOS / Android ~ ~
Uso comercial permitido La licencia permite uso comercial de código cerrado
Código fuente disponible El código fuente de la biblioteca está disponible para la persona desarrolladora
Mantenimiento activo Lanzamientos o actividad etiquetada en los últimos 12–18 meses ~ ~
Modelo de licencia Tipo de licencia Comercial BSD / MPL (open source) Gratis, con código fuente Comercial MPL / GPL / LGPL (open source) Varía (normalmente MIT / BSD / Apache)
Soporte nativo documentado No se ofrece de forma nativa ~ Parcial / mediante complemento / sin verificar

Migrar a sgcWebSockets — qué cambia

Notas breves sobre las diferencias de API y características si vienes de una de las bibliotecas anteriores. Sin ánimo de enfrentar; solo la correspondencia práctica.

Migrar desde Indy (Internet Direct)

Indy te ofrece la base HTTP y TCP en crudo; sgcWebSockets te aporta el framing de WebSocket, ping/pong, reconexión automática, subprotocolos (MQTT/AMQP/STOMP/WAMP) y per-message-deflate integrados. Si hoy tienes un servidor HTTP basado en Indy, sgcWebSockets ofrece un TsgcWebSocketHTTPServer aparte en lugar de un plug-in dentro de Indy: las rutas HTTP existentes hay que reimplementarlas con el servidor sgc, o ejecutar ambos en paralelo en puertos distintos.

Migrar desde ICS (Internet Component Suite)

Ambas bibliotecas exponen un cliente WebSocket y un servidor WebSocket-sobre-HTTP. Los protocolos de mensajería con nombre (MQTT, AMQP, STOMP, WAMP) y los clientes de IA/LLM y APIs de exchanges son exclusivos de sgcWebSockets. Si actualmente ejecutas un servidor web ICS con rutas WebSocket, sgcWebSockets ofrece TsgcWebSocketHTTPServer como host HTTP+WS listo para usar, aunque la API de registro de rutas es distinta.

Migrar desde TMS FNC WebSocket / TMS Sparkle

sgcWebSockets y TMS FNC WebSocket implementan ambos cliente y servidor RFC 6455. Migra cambiando la clase del componente y reconectando los eventos. Las capas de protocolo construidas encima (MQTT, AMQP, STOMP, WAMP), el cliente y servidor HTTP/2 y las más de 30 integraciones de APIs de terceros son exclusivas de sgcWebSockets. Si usas TMS MQTT por separado, sgcWebSockets incluye MQTT en la misma suite.

Migrar desde mORMot 2

mORMot 2 envuelve WebSocket dentro de su capa SOA; sgcWebSockets ofrece un componente independiente WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP que puedes añadir a cualquier proyecto Delphi. Si tu aplicación usa las funciones de ORM y SOA de mORMot 2, cambiar a sgcWebSockets implica reimplementar la capa SOA; si solo usabas mORMot 2 para el transporte WebSocket, sgcWebSockets es un cambio más uno a uno.

Migrar desde bibliotecas independientes solo de MQTT

Si actualmente usas una biblioteca solo de MQTT y empiezas a añadir WebSocket, HTTP/2, AMQP o clientes de IA/LLM, sgcWebSockets consolida todo eso en una sola suite, con una única licencia y un único canal de actualizaciones.

Cada afirmación, con enlace

Cada celda de la matriz anterior remite a una de estas páginas oficiales de documentación, repositorios o notas de versión. Todas las URL se comprobaron con HEAD en el momento de la redacción.

FuenteURL
sgcWebSockets — página del productohttps://www.esegece.com/products/websockets/
sgcWebSockets — matriz de características de Delphihttps://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — project homepage (indyproject.org)https://www.indyproject.org/
Indy — GitHub repository (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — releases (latest tagged 10.6.3.14)https://github.com/IndySockets/Indy/releases
ICS — V9.0 release notes (WebSocket support introduced)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — V9.6 release notes (TLS 1.3 / PQC)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — download page (latest stable)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — product pagehttps://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — product pagehttps://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — GitHub repository (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (protocol list, supported targets)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — releases (v2.4 stable)https://github.com/synopse/mORMot2/releases
Synopse forum (Object Pascal SOA / ORM)https://synopse.info/
GitHub topic: delphi-mqtt (community single-purpose MQTT clients)https://github.com/topics/delphi-mqtt
RFC 6455 — The WebSocket Protocolhttps://datatracker.ietf.org/doc/html/rfc6455
RFC 7692 — Compression Extensions for WebSocket (per-message-deflate)https://datatracker.ietf.org/doc/html/rfc7692

Prueba sgcWebSockets

Descarga la edición Trial gratuita y compara el rendimiento de sgcWebSockets con tu biblioteca actual en tu propia aplicación.