Librerie WebSocket per Delphi e C++ Builder — guida al confronto

Un confronto neutrale e con fonti citate delle librerie WebSocket disponibili per sviluppatori Delphi e C++ Builder nel 2026: sgcWebSockets, Indy, ICS, TMS FNC WebSocket, mORMot 2 e librerie MQTT autonome. Ogni affermazione su una funzionalità rimanda alla documentazione ufficiale del progetto.

Sei librerie usate davvero dagli sviluppatori

Un riepilogo di un paragrafo per ogni libreria, con un link alla documentazione ufficiale. Il confronto dettagliato è nella matrice qui sotto.

Indy (Internet Direct)

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

Libreria open-source TCP/UDP/raw-socket inclusa in ogni installazione recente di RAD Studio. Include oltre 120 client e server di protocolli di alto livello (HTTP, SMTP, POP3, IMAP, FTP, NNTP, IRC e altri), ma non include un client o server WebSocket nativo — gli utenti tipicamente aggiungono un add-on WebSocket di terze parti sopra TIdHTTP / TIdHTTPServer.

Pagina ufficiale

ICS (Internet Component Suite)

François Piette / Magenta Systems Ltd · Gratuita, sorgenti disponibili

Libreria di networking open-source per Delphi / C++ Builder di François Piette. Il supporto WebSocket è stato aggiunto in ICS V9.0 come TSslWebSocketCli (in OverbyteIcsWebSocketCli) con una classe server THttpWSSrvConn sopra il web server ICS esistente.

Pagina ufficiale

TMS FNC WebSocket / TMS Sparkle

TMS Software · Commerciale

TMS Software offre due prodotti rilevanti. TMS Sparkle è un framework client / server HTTP multipiattaforma (usato internamente anche da TMS XData e TMS RemoteDB). TMS FNC WebSocket è una coppia separata di client e server WebSocket VCL + FireMonkey che implementa RFC 6455.

Pagina ufficiale

mORMot 2

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

Framework open-source Object Pascal per SOA / ORM / MVC con server HTTP e WebSocket asincrono, REST/JSON, OpenAPI / Swagger, LDAP, DNS, ACME e primitive crittografiche. Le unit server Delphi supportano solo Windows; FPC (Free Pascal) compila lo stesso codice server per Linux, BSD e macOS. I client mobile sono supportati su tutte le piattaforme.

Pagina ufficiale

Librerie autonome solo per MQTT

Vari autori della comunità · Varia (tipicamente MIT / BSD / Apache)

Su GitHub sono pubblicati diversi client MQTT monoscopo per Delphi. Tipicamente coprono solo il lato client di MQTT 3.1.1, non includono server MQTT 5.0, AMQP, STOMP o WAMP, e sono mantenuti da singoli autori.

Pagina ufficiale

Confronto affiancato delle funzionalità

Un segno di spunta () significa che il progetto documenta il supporto nativo. Un trattino () significa che il progetto non lo fornisce nativamente. Una tilde (~) significa parziale / tramite add-on / non documentato esplicitamente — vedi la sezione Fonti per ciò che è stato possibile verificare.

Protocolli, trasporto, licenze

16 righe
Funzionalità sgcWebSockets Indy (Internet Direct) ICS (Internet Component Suite) TMS FNC WebSocket / TMS Sparkle mORMot 2 Librerie autonome solo per MQTT
Client WebSocket Client RFC 6455 ~
Server WebSocket Server RFC 6455 ~
TLS 1.3 TLS 1.3 supportato dal trasporto fornito ~ ~
Client HTTP/2 Client HTTP/2 nativo (RFC 7540 / 9113) ~
MQTT Client MQTT 3.1.1 / 5.0 integrato ~ ~
AMQP Client AMQP 0.9.1 / 1.0 integrato
STOMP Client STOMP 1.0 / 1.2 integrato
WAMP Client WAMP v1 / v2 integrato
Server push / streaming Connessione push o streaming a lunga durata ~ ~ ~
Riconnessione automatica Riconnessione automatica / watchdog del client integrati ~ ~ ~ ~
per-message-deflate (RFC 7692) Estensione di compressione WebSocket ~ ~ ~
Multipiattaforma Win / macOS / Linux / iOS / Android ~ ~
Uso commerciale consentito La licenza consente uso commerciale closed-source
Codice sorgente disponibile Il sorgente della libreria è visibile allo sviluppatore
Manutenzione attiva Release o attività con tag negli ultimi 12–18 mesi ~ ~
Modello di licenza Tipo di licenza Commerciale BSD / MPL (open source) Gratuita, sorgenti disponibili Commerciale MPL / GPL / LGPL (open source) Varia (tipicamente MIT / BSD / Apache)
Supporto nativo documentato Non fornito nativamente ~ Parziale / tramite add-on / non verificato

Adattamento onesto per ogni libreria

Ogni libreria qui presente ha un pubblico reale. La scelta giusta dipende dall'ampiezza dei protocolli di cui hai bisogno, dalla tua preferenza di licenza e dalle tue dipendenze esistenti.

Scegli sgcWebSockets

Scegli sgcWebSockets quando ti servono WebSocket più protocolli di messaggistica (MQTT, AMQP, STOMP, WAMP), HTTP/2 e client AI/LLM in un unico set di componenti con una sola licenza commerciale, un'ampia copertura delle versioni di Delphi (7–13) inclusi C++ Builder, e target FireMonkey per macOS, iOS, Android e Linux.

Scegli Indy (Internet Direct)

Scegli Indy quando WebSocket di per sé non è un requisito — per esempio, quando ti serve un toolkit TCP/UDP con licenza permissiva, supporto maturo per HTTP, SMTP, POP3, IMAP, FTP e NNTP, oppure quando vuoi estendere TIdHTTPServer con un tuo gestore di upgrade WebSocket. Indy è incluso in RAD Studio, quindi non aggiunge nulla all'impronta delle dipendenze.

Scegli ICS (Internet Component Suite)

Scegli ICS quando vuoi una suite di networking Delphi open-source con client e server WebSocket, TLS 1.3 moderno (inclusa la crittografia post-quantistica in V9.6) basato su OpenSSL 3.x, e ti trovi a tuo agio nel cablare le route attraverso il web server ICS esistente. ICS è una release di lungo termine che segue versioni di OpenSSL attivamente mantenute.

Scegli TMS FNC WebSocket / TMS Sparkle

Scegli TMS FNC WebSocket quando WebSocket è l'unico protocollo di rete di cui hai bisogno su VCL e FireMonkey, quando hai già altri componenti TMS FNC in licenza (lo stile delle API visuali e non visuali resta coerente), oppure quando vuoi specificamente l'approccio cross-framework di FNC (una sola base di codice tra VCL e FMX). Per l'hosting di servizi HTTP e HTTP/S, TMS Sparkle si abbina a TMS XData.

Scegli mORMot 2

Scegli mORMot 2 quando vuoi un framework full-stack open-source (ORM, SOA, REST, WebSocket, OpenAPI) per Object Pascal con licenza MPL/GPL/LGPL, quando il tuo server gira su Linux con FPC, oppure quando vuoi un unico framework che copra database, logica di business e trasporto WebSocket.

Scegli librerie autonome solo per MQTT

Scegli una libreria autonoma solo per MQTT quando MQTT è l'unico protocollo che ti serve, quando il progetto deve dipendere solo da codice con licenza permissiva, e quando vuoi leggere ogni riga dell'implementazione del protocollo. Controlla la cronologia dei commit del progetto scelto prima di adottarlo — l'attività varia molto tra autori.

Passare a sgcWebSockets — cosa cambia

Brevi note sulle differenze di API e funzionalità se stai migrando da una delle librerie qui sopra. Non polemico — solo la mappatura pratica.

Migrazione da Indy (Internet Direct)

Indy fornisce l'infrastruttura HTTP e TCP di basso livello; sgcWebSockets fornisce in modo integrato il framing WebSocket, ping/pong, riconnessione automatica, sub-protocolli (MQTT/AMQP/STOMP/WAMP) e per-message-deflate. Se oggi hai un server HTTP basato su Indy, sgcWebSockets fornisce un TsgcWebSocketHTTPServer separato anziché un plug-in per Indy — le route HTTP esistenti vanno reimplementate sotto il server sgc, oppure si possono far girare in parallelo su porte diverse.

Migrazione da ICS (Internet Component Suite)

Entrambe le librerie offrono un client WebSocket e un server WebSocket-over-HTTP. I protocolli di messaggistica citati (MQTT, AMQP, STOMP, WAMP) e i client AI/LLM e di API di exchange sono esclusivi di sgcWebSockets. Se attualmente fai girare un web server ICS con route WebSocket, sgcWebSockets fornisce TsgcWebSocketHTTPServer come host HTTP+WS sostitutivo, ma l'API di registrazione delle route è diversa.

Migrazione da TMS FNC WebSocket / TMS Sparkle

sgcWebSockets e TMS FNC WebSocket implementano entrambi client e server RFC 6455. Migra sostituendo la classe del componente e ricollegando gli eventi. I livelli di protocollo costruiti sopra (MQTT, AMQP, STOMP, WAMP), il client e il server HTTP/2 e le oltre 30 integrazioni di API di terze parti sono esclusivi di sgcWebSockets. Se usi TMS MQTT separatamente, sgcWebSockets include MQTT nella stessa suite.

Migrazione da mORMot 2

mORMot 2 racchiude WebSocket all'interno del suo livello SOA; sgcWebSockets fornisce un componente WebSocket / HTTP/2 / MQTT / AMQP / STOMP / WAMP autonomo che puoi inserire in qualsiasi progetto Delphi. Se la tua applicazione usa le funzionalità ORM e SOA di mORMot 2, passare a sgcWebSockets significa reimplementare il livello SOA; se hai usato mORMot 2 solo per il trasporto WebSocket, sgcWebSockets è una sostituzione più diretta.

Migrazione da librerie autonome solo per MQTT

Se attualmente usi una libreria autonoma solo per MQTT e inizi ad aggiungere client WebSocket, HTTP/2, AMQP o API AI/LLM, sgcWebSockets consolida tutto in un'unica suite, con una sola licenza e un solo canale di aggiornamento.

Ogni cella della matrice qui sopra rimanda a una di queste pagine di documentazione ufficiale, repository o note di rilascio. Tutti gli URL sono stati controllati con HEAD al momento della stesura.

FonteURL
sgcWebSockets — pagina del prodottohttps://www.esegece.com/products/websockets/
sgcWebSockets — matrice delle funzionalità Delphihttps://www.esegece.com/products/websockets/features/feature-matrix-delphi/
Indy — homepage del progetto (indyproject.org)https://www.indyproject.org/
Indy — repository GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — release (ultimo tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
ICS — note di rilascio V9.0 (introduzione del supporto WebSocket)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0
ICS — note di rilascio V9.6 (TLS 1.3 / PQC)https://wiki.overbyte.eu/wiki/index.php/ICS_V9.6
ICS — pagina di download (ultima stabile)https://wiki.overbyte.eu/wiki/index.php/ICS_Download
TMS Sparkle — pagina del prodottohttps://www.tmssoftware.com/site/sparkle.asp
TMS FNC WebSocket — pagina del prodottohttps://www.tmssoftware.com/site/tmsfncwebsocket.asp
mORMot 2 — repository GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (elenco protocolli, target supportati)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — release (v2.4 stabile)https://github.com/synopse/mORMot2/releases
Forum Synopse (Object Pascal SOA / ORM)https://synopse.info/
Argomento GitHub: delphi-mqtt (client MQTT monoscopo della comunità)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

Prova sgcWebSockets

Scarica la versione di prova gratuita e confronta sgcWebSockets con la tua libreria attuale sulla tua applicazione.