Scegliere una libreria WebSocket per Delphi — guida all'acquisto 2026

· Recensioni

Perché esiste questa guida

WebSocket non è più un trasporto di nicchia. Dashboard di trading, backend di chat, giochi multiplayer, control plane IoT, response in streaming dell'AI, console di amministrazione basate su browser — quasi ogni applicazione interattiva moderna apre almeno un WebSocket. Gli sviluppatori Delphi che chiedono “quale libreria dovrei usare?” nel 2026 affrontano un campo più ristretto di quanto potrebbero pensare: non tutti i pacchetti di networking Delphi classici si sono messi al passo con RFC 6455, e alcuni di quelli che lo hanno fatto puntano a nicchie molto specifiche.

Questa guida passa in rassegna le opzioni realistiche nel 2026 — sgcWebSockets, Indy, TMS FNC WX, mORMot, Synapse — e fornisce una matrice decisionale alla fine. Dove le affermazioni dipendono dalla release corrente di un vendor, questo articolo descrive la situazione al momento della scrittura; conferma sempre i dettagli con il changelog più recente del vendor prima di impegnarti.

I contendenti

sgcWebSockets (eSeGeCe)

Libreria commerciale focalizzata su WebSocket e sulla più ampia famiglia di protocolli moderni (HTTP/2, HTTP/3, MQTT, AMQP, STOMP, SSE, WAMP, WebRTC, IoT, API AI). RFC 6455 completo, per-message deflate, sotto-protocolli, canali, helper di broadcast, auto-reconnect WatchDog, scaling server IOCP, mirror del client JavaScript, port .NET. Free Edition per uso non commerciale; quattro edizioni a pagamento. Da Delphi 7 a 13, più C++Builder e .NET.

Indy (stock)

L'Indy stock distribuito con Delphi non include un client o server WebSocket nativo. Esistono diversi add-on della community (cerca “Indy WebSocket” su GitHub) ma nessuno fa parte della distribuzione ufficiale di IndyProject al momento. Se costruisci un WebSocket sopra Indy direttamente, stai essenzialmente scrivendo il framer da te. Gratis, incluso nel box.

TMS FNC WX (in precedenza TMS WEB Core / FNC WebSocket)

TMS Software distribuisce un componente WebSocket cross-framework come parte della famiglia FNC (TTMSFNCWebSocketClient e un lato server tramite TMS XData / TMS Sparkle). Funziona su VCL, FMX, LCL e TMS WEB Core. Il lato client è solido; il lato server è consegnato principalmente attraverso lo stack TMS XData / Sparkle come funzionalità di quei prodotti. Commerciale, con pricing in abbonamento per sviluppatore. Delphi 10.x e più recenti.

mORMot 2

Framework full-stack open-source di Synopse (Arnaud Bouchez). Include un client e server WebSocket strettamente integrati con la sua infrastruttura SOA/ORM/REST. Il WebSocket di mORMot è maturo, veloce, supporta il framing binario e il per-message deflate, ed è ampiamente usato in produzione per servizi ad alta scala. Il compromesso è che mORMot è opinionato — usare solo il suo layer WebSocket è possibile ma l'adattamento naturale è quando adotti il framework più ampio. Open source (tri-licenza MPL/GPL/LGPL), Delphi 7 in su, più FreePascal.

Synapse

Libreria di networking Pascal open-source classica. Al momento, Synapse stock non include un'implementazione WebSocket. Alcuni layer WebSocket di terze parti costruiti sopra Synapse esistono ma sono non mantenuti o progetti di un singolo autore. Gratis.

Matrice delle funzionalità

Funzionalità sgcWebSockets Indy (stock) TMS FNC WX mORMot 2 Synapse
Client WebSocketNoNo
Server WebSocketNoVia TMS XData/SparkleNo
RFC 6455 (frame, masking, frame di controllo)n/an/a
Per-message deflate (RFC 7692)n/aParzialen/a
Sotto-protocolli / canali / broadcastSì, integratin/aManualeManualen/a
Auto-reconnect / WatchDogn/aManualeManualen/a
WebSocket su TLS (wss://)Sì (OpenSSL, SChannel, BoringSSL)n/an/a
Sotto-protocolli WebSocket-MQTT / STOMP / WAMPn/aNoLimitaton/a
HTTP/2, HTTP/3NoNoLimitatoNo
Scaling server IOCP / epollSì (IOCP Windows, epoll Linux)Thread-per-connessioneDipende dal server hostn/a
Mirror JavaScript del clientSì (distribuisce libreria JS)n/aSì (integrazione TMS WEB Core)Manualen/a
Port .NETSì (stessa API)n/aNoNon/a
Versioni DelphiD7 - D13D7 - D13D10.x - D13D7 - D13, FPCD7 - D13, FPC
LicenzaCommerciale (esiste Free Edition)Gratuita, in stile MITCommercialeTri-licenza open sourceGratuita
Supporto vendorIncluso con le edizioni a pagamentoCommunity (IndyProject)Incluso con l'abbonamentoSupporto commerciale via SynopseCommunity / singolo autore
Manutenzione attivaRilasci mensiliLenta ma stabileRegolareMolto attivaLenta

Scelta per scenario

Scenario 1: app desktop VCL che si connette a un'API WebSocket di terze parti

Hai bisogno di un client che si connetta a wss://, invii JSON, riceva JSON, si riconnetta in caso di disconnessione, gestisca TLS. Il percorso più breve è sgcWebSockets (piazza il componente, imposta URL, imposta WatchDog.Attempts, fatto) o TMS FNC WX se hai già la licenza del pack FNC. Indy e Synapse richiederanno di scrivere il framer da te, il che è molto lavoro per gestire correttamente i casi limite di RFC 6455.

Scenario 2: costruire un server WebSocket per centinaia di client

sgcWebSockets è la scelta naturale se vuoi un componente server standalone che serva HTTP e WebSocket sulla stessa porta con canali e broadcast. mORMot 2 è la scelta naturale se stai già costruendo un servizio SOA/REST dentro il framework mORMot — il suo layer WebSocket si integra col resto dello stack ed è battle-tested su scala.

Scenario 3: decine di migliaia di connessioni concorrenti

Sia sgcWebSockets (IOCP su Windows, epoll su Linux) sia mORMot 2 sono stati deployati in produzione a quella scala. Il modello thread-per-connessione di Indy stock difficilmente terrà il passo senza un significativo lavoro architetturale. Lo scaling di TMS FNC WX dipende dal server host scelto (XData/Sparkle).

Scenario 4: WebSocket dentro un framework full-stack Pascal (REST, ORM, SOA)

mORMot 2. È a questo che serve mORMot. Adottare solo il layer WebSocket in isolamento è possibile ma ottieni il massimo valore quando abbracci il framework più ampio.

Scenario 5: client cross-framework (VCL, FMX, LCL, TMS WEB Core)

TMS FNC WX è progettato esattamente per quel caso — un'unica API attraverso tutti e quattro. sgcWebSockets copre VCL, FMX e C++Builder più una port .NET, ma non targetizza Lazarus/FPC.

Scenario 6: serve WebSocket più MQTT, AMQP, WebRTC, HTTP/2, API AI

sgcWebSockets è l'unica libreria in questo confronto che distribuisce tutto quanto sopra sotto un singolo prodotto e un singolo modello di componenti. Se il tuo progetto è su una traiettoria da “solo un client WebSocket” a “uno stack real-time completo”, consolidare presto di solito è più economico che incollare insieme più librerie dopo.

Scenario 7: budget stretto, solo open-source, progetto hobbystico

mORMot 2 (open source) ti dà un'implementazione WebSocket seria gratis. La Free Edition di sgcWebSockets è un'opzione per uso non commerciale. Indy con un add-on WebSocket della community è tecnicamente possibile ma aspettati di leggere da solo gli RFC pertinenti.

Matrice decisionale

Cosa conta di piùScelta consigliata
Tempo più rapido a un client funzionante + supporto vendorsgcWebSockets
Framework full-stack open-sourcemORMot 2
Cross-framework (VCL/FMX/LCL/WEB Core)TMS FNC WX
Massime connessioni concorrenti, commercialesgcWebSockets
Massime connessioni concorrenti, open sourcemORMot 2
Un prodotto che copre WebSocket + MQTT + HTTP/2 + WebRTC + AIsgcWebSockets
Progetto hobbystico gratis / senza impegnomORMot 2 o sgcWebSockets Free Edition
Già dentro un progetto TMS XData / SparkleTMS FNC WX
Già dentro un progetto mORMotmORMot 2

Checklist prima di impegnarti

Considerazioni finali

Il panorama WebSocket Delphi nel 2026 è più sano di quanto sembri a prima vista. Per un client veloce, sgcWebSockets ti fa funzionare in pochi minuti. Per un progetto full-stack open-source, mORMot 2 è difficile da battere. Per client GUI cross-framework, TMS FNC WX è un adattamento naturale. Indy stock e Synapse restano preziosi per i loro protocolli Internet classici ma nessuno dei due possiede WebSocket. La scelta giusta dipende da dove si trova il tuo progetto sullo spettro da “singolo endpoint” a “piattaforma real-time completa” — scegli la libreria che corrisponde sia al requisito di oggi sia a dove ti aspetti che il progetto sia tra due anni.