Delphi WebSocket-component — Productieklare client & server
Een native, RFC 6455 WebSocket-implementatie voor Delphi en C++Builder. Bouw clients en servers die duizenden gelijktijdige verbindingen vasthouden, draaien op Windows, macOS, Linux, iOS en Android, en wankele netwerken overleven met de ingebouwde WatchDog auto-reconnect.
Een drop-in VCL/FMX-component die het WebSocket-protocol omzet naar een property-en-event-API die native Delphi-ontwikkelaars herkennen.
Een Delphi WebSocket-component is een niet-visueel component dat je op een formulier dropt (of runtime instantieert) om een full-duplex TCP-kanaal te openen tussen een Delphi-applicatie en elke RFC 6455 WebSocket-peer — een browser, een Node.js-service, een nginx-reverse-proxy, een Mosquitto-broker, een OpenAI Realtime-endpoint of een ander Delphi-proces. In tegenstelling tot polling HTTP houdt een WebSocket de verbinding open: de server kan data pushen zodra deze beschikbaar is, met milliseconde-latentie en geen per-message HTTP-overhead.
sgcWebSockets is sinds 2013 de referentie-WebSocket-bibliotheek in het Delphi-ecosysteem. Dezelfde TsgcWebSocketClient- en TsgcWebSocketHTTPServer-componenten draaien ongewijzigd op Delphi 7 t/m Delphi 13, op Win32, Win64, Linux64, macOS, iOS en Android, en op C++Builder C2007 t/m C13. Er is geen managed runtime, geen .NET-interop-laag, geen JavaScript-bridge — het is een pure Pascal-implementatie die compileert in je binary.
Waarom voor sgcWebSockets kiezen boven zelf bouwen
Een PING/PONG-handler schrijven is makkelijk. Een TLS-terminerende reverse proxy, een IIS WebSocket-module, een corporate firewall, een mobiele cellular handover en een 5.000-client-loadtest overleven niet.
Een API, elk transport
Plain WebSocket (ws://), TLS WebSocket (wss://), WebSocket over HTTP/2, WebSocket over QUIC/HTTP/3, raw TCP-fallback — zelfde component, zelfde events. Wissel transport door een property te veranderen.
WatchDog auto-reconnect
Schakel WatchDog in en de client reconnect met exponentiele backoff, herauthenticeert, abonneert zich opnieuw op MQTT-topics en speelt alle wachtende publicaties opnieuw af — het canonieke mobile / IoT-patroon, al geschreven.
Threading is opgelost
De server gebruikt onder de motorkap een IOCP- / kqueue- / epoll-reactor. Je schrijft event-handlers; de bibliotheek plant ze over een thread pool met per-verbinding-serialisatie.
permessage-deflate
Automatisch onderhandeld per RFC 7692. Snijdt JSON-payloads met 70–90 % en wordt ondersteund door elke moderne browser en load balancer.
Subprotocollen inbegrepen
MQTT 3.1.1/5.0, AMQP 0.9.1/1.0, STOMP, WAMP en Server-Sent Events rijden bovenop hetzelfde WebSocket-transport — een TCP-socket, meerdere applicatieprotocollen.
HTTP-server, ook
TsgcWebSocketHTTPServer serveert statische bestanden, REST-endpoints, JWT- en OAuth2-beschermde resources, gzip-gecomprimeerde responses en HTTP/2-upgrade in hetzelfde proces als je WebSocket-endpoint.
TLS dat echt werkt
OpenSSL (cross-platform), SChannel (Windows kernel-TLS) of HTTP.sys. Client-certificaten, SNI, ALPN, TLS 1.3 met 0-RTT.
Kanalen & broadcast
Server-side Channels groeperen verbindingen op naam. Broadcast, BroadcastByChannel en BroadcastByUser waaieren in een enkele aanroep uit naar duizenden peers.
Battle-tested
In productie bij banken, exchanges, IoT-vloten en trading-firms sinds 2013. Maandelijks bijgewerkt; history.txt volgt elke fix.
Feature-matrix
Feature-checklist
Alles wat de RFC zegt, plus de operationele hardening die echte deployments nodig hebben.
Server-kant is symmetrisch — plaats een TsgcWebSocketHTTPServer, stel Port in, handle OnConnect en OnMessage af, roep Broadcast aan om uit te waaieren naar elke verbonden peer.
Compatibiliteit
Ondersteunde Delphi- & C++Builder-versies
Een source tree, 22 runtime-packages — die elke Delphi-release dekken die nog actief in commercieel gebruik is.
Elke commerciele Delphi-release van Delphi 7 (2002) t/m Delphi 13 (2025), plus bijpassende C++Builder-versies. We leveren 22 aparte runtime-packages — een per IDE — uit een enkele source tree. Er is geen aparte “legacy”-SKU; elke klant krijgt elke versie.
Ondersteunt de WebSocket-component TLS / wss://?
Ja. Stel URL := 'wss://...' in en kies een TLS-provider: OpenSSL (cross-platform, geleverd bij de trial), SChannel (Windows kernel-TLS, geen DLL’s te deployen), of HTTP.sys (server-zijde, certificaat opgeslagen in de Windows-certificaatopslag). Client-certificaten, SNI, ALPN, TLS 1.3 en 0-RTT worden allemaal ondersteund.
Hoeveel gelijktijdige verbindingen kan de server aan?
Op Windows gebruikt de server IOCP en schaalt routinematig naar 50.000+ gelijktijdige verbindingen per proces op commodity-hardware. Op Linux schaalt de epoll-reactor vergelijkbaar. De harde limiet is op OS-niveau (file descriptors, ephemerale poortrange, kernel-geheugen), niet de bibliotheek.
Wat is het licentiemodel?
Royalty-vrij per-ontwikkelaar perpetual licentie met een jaar updates inbegrepen. Single-developer-, team- en site-licenties beschikbaar — zie prijzen. Broncode is inbegrepen bij elke commerciele editie.
Klaar om WebSockets aan je Delphi-app toe te voegen?
Download de volledig functionele 30-daagse proefversie — client, server, alle subprotocollen, alle Delphi-versies.