Componente WebSocket Delphi — client e server di livello produzione
Un'implementazione WebSocket nativa, conforme a RFC 6455, per Delphi e C++Builder. Costruisci client e server che mantengono migliaia di connessioni concorrenti, girano su Windows, macOS, Linux, iOS e Android, e sopravvivono a reti instabili grazie alla riconnessione automatica integrata WatchDog.
Un componente drop-in VCL/FMX che trasforma il protocollo WebSocket in un'API di proprietà ed eventi familiare agli sviluppatori Delphi nativi.
Un componente WebSocket Delphi è un componente non visuale che metti su una form (o istanzi a runtime) per aprire un canale TCP full-duplex tra un'applicazione Delphi e qualunque peer WebSocket RFC 6455 — un browser, un servizio Node.js, un reverse proxy nginx, un broker Mosquitto, un endpoint OpenAI Realtime o un altro processo Delphi. A differenza del polling HTTP, un WebSocket mantiene la connessione aperta: il server può fare push dei dati nel momento in cui sono disponibili, con latenza dell'ordine dei millisecondi e senza l'overhead HTTP per ogni messaggio.
sgcWebSockets è la libreria WebSocket di riferimento nell'ecosistema Delphi dal 2013. Gli stessi componenti TsgcWebSocketClient e TsgcWebSocketHTTPServer girano invariati da Delphi 7 fino a Delphi 13, su Win32, Win64, Linux64, macOS, iOS e Android, e su C++Builder dal C2007 al C13. Non c'è alcun runtime managed, nessun layer di interop .NET, nessun bridge JavaScript — è una pura implementazione Pascal che si compila nel tuo binario.
Perché scegliere sgcWebSockets invece di scriverselo
Scrivere un handler PING/PONG è facile. Sopravvivere a un reverse proxy che termina TLS, a un modulo WebSocket di IIS, a un firewall aziendale, a un handover cellulare mobile e a un test di carico con 5.000 client non lo è.
Un'unica API, ogni trasporto
WebSocket in chiaro (ws://), WebSocket TLS (wss://), WebSocket su HTTP/2, WebSocket su QUIC/HTTP/3, fallback su TCP raw — stesso componente, stessi eventi. Cambi trasporto modificando una sola proprietà.
Riconnessione automatica WatchDog
Abilita WatchDog e il client si riconnetterà con back-off esponenziale, si riautenticherà, si risottoscriverà ai topic MQTT e rigiocherà le pubblicazioni in coda — il pattern canonico mobile / IoT, già scritto.
Il threading è risolto
Il server usa internamente un reactor IOCP / kqueue / epoll. Tu scrivi gli handler degli eventi; la libreria li scheduli su un thread pool con serializzazione per connessione.
permessage-deflate
Negoziato automaticamente per RFC 7692. Riduce i payload JSON del 70–90 % ed è supportato da ogni browser moderno e load balancer.
Sotto-protocolli inclusi
MQTT 3.1.1/5.0, AMQP 0.9.1/1.0, STOMP, WAMP e Server-Sent Events viaggiano sopra lo stesso trasporto WebSocket — un solo socket TCP, più protocolli applicativi.
Anche un server HTTP
TsgcWebSocketHTTPServer serve file statici, endpoint REST, risorse protette da JWT e OAuth2, response compresse con gzip e l'upgrade a HTTP/2 nello stesso processo del tuo endpoint WebSocket.
TLS che funziona davvero
OpenSSL (cross-platform), SChannel (TLS kernel Windows) o HTTP.sys. Certificati client, SNI, ALPN, TLS 1.3 con 0-RTT.
Canali e broadcast
I Channels lato server raggruppano le connessioni per nome. Broadcast, BroadcastByChannel e BroadcastByUser distribuiscono a migliaia di peer in una sola chiamata.
Battle-tested
In produzione in banche, exchange, flotte IoT e società di trading dal 2013. Aggiornato ogni mese; history.txt traccia ogni fix.
Matrice delle funzionalità
Checklist delle funzionalità
Tutto ciò che dice l'RFC, più l'hardening operativo di cui hanno bisogno i deployment reali.
Il lato server è simmetrico — metti un TsgcWebSocketHTTPServer, imposta Port, gestisci OnConnect e OnMessage, chiama Broadcast per distribuire a ogni peer connesso.
Compatibilità
Versioni Delphi e C++Builder supportate
Un solo albero sorgente, 22 package runtime — che coprono ogni release Delphi ancora in uso commerciale attivo.
Tuning di permessage-deflate per il throughput contro la CPU.
FAQ
Domande frequenti
Quali versioni di Delphi sono supportate?
Ogni release commerciale di Delphi da Delphi 7 (2002) fino a Delphi 13 (2025), più le corrispondenti versioni di C++Builder. Distribuiamo 22 package runtime separati — uno per IDE — da un singolo albero sorgente. Non c'è una SKU “legacy” separata; ogni cliente riceve ogni versione.
Il componente WebSocket supporta TLS / wss://?
Sì. Imposta URL := 'wss://...' e scegli un provider TLS: OpenSSL (cross-platform, incluso nella trial), SChannel (TLS kernel Windows, nessuna DLL da deployare), o HTTP.sys (lato server, certificato memorizzato nel Windows certificate store). Certificati client, SNI, ALPN, TLS 1.3 e 0-RTT sono tutti supportati.
Quante connessioni concorrenti può gestire il server?
Su Windows il server usa IOCP e raggiunge abitualmente 50.000+ connessioni concorrenti per processo su hardware commodity. Su Linux il reactor epoll scala in modo simile. Il limite duro è di livello OS (file descriptor, range di porte ephemeral, memoria kernel), non della libreria.
Qual è il modello di licenza?
Licenza perpetua per sviluppatore royalty-free con un anno di aggiornamenti incluso. Sono disponibili licenze single-developer, team e site — vedi prezzi. Il codice sorgente è incluso con ogni edizione commerciale.
Pronto ad aggiungere i WebSocket alla tua app Delphi?
Scarica la trial completamente funzionale di 30 giorni — client, server, tutti i sotto-protocolli, tutte le versioni Delphi.