Delphi-WebSocket-Komponente — produktionsreifer Client & Server

Eine native, RFC 6455-konforme WebSocket-Implementierung für Delphi und C++Builder. Baue Clients und Server, die Tausende gleichzeitiger Verbindungen halten, auf Windows, macOS, Linux, iOS und Android laufen und dank des eingebauten WatchDog-Auto-Reconnects auch wackelige Netzwerke überleben.

Was ist eine Delphi-WebSocket-Komponente?

Eine drop-in VCL/FMX-Komponente, die das WebSocket-Protokoll in eine Eigenschafts- und Event-API verwandelt, die native Delphi-Entwickler sofort wiedererkennen.

Eine Delphi-WebSocket-Komponente ist eine nichtvisuelle Komponente, die du auf ein Formular ziehst (oder zur Laufzeit instanziierst), um einen voll-duplexen TCP-Kanal zwischen einer Delphi-Anwendung und einem beliebigen RFC 6455-WebSocket-Peer zu öffnen — ein Browser, ein Node.js-Service, ein nginx-Reverse-Proxy, ein Mosquitto-Broker, ein OpenAI-Realtime-Endpunkt oder ein anderer Delphi-Prozess. Anders als beim HTTP-Polling bleibt die WebSocket-Verbindung offen: Der Server kann Daten im Moment des Entstehens pushen, mit Millisekunden-Latenz und ohne HTTP-Overhead pro Nachricht.

sgcWebSockets ist seit 2013 die Referenz-WebSocket-Bibliothek im Delphi-Ökosystem. Dieselben Komponenten TsgcWebSocketClient und TsgcWebSocketHTTPServer laufen unverändert von Delphi 7 bis Delphi 13, auf Win32, Win64, Linux64, macOS, iOS und Android sowie auf C++Builder C2007 bis C13. Keine Managed Runtime, keine .NET-Interop-Schicht, keine JavaScript-Brücke — eine reine Pascal-Implementierung, die direkt in deine Binary kompiliert wird.

Komponenten-Klasse

TsgcWebSocketClient / TsgcWebSocketHTTPServer

Standards

RFC 6455, RFC 7692 (permessage-deflate)

Plattformen

Windows, macOS, Linux, iOS, Android

Delphi-Versionen

Delphi 7 → Delphi 13 + C++Builder

Warum sgcWebSockets statt einer Eigenentwicklung?

Einen PING/PONG-Handler zu schreiben ist einfach. Einen TLS-terminierenden Reverse-Proxy, ein IIS-WebSocket-Modul, eine Firmen-Firewall, einen Mobilfunk-Handover und einen 5.000-Client-Lasttest zu überstehen ist es nicht.

Eine API, jeder Transport

Klartext-WebSocket (ws://), TLS-WebSocket (wss://), WebSocket über HTTP/2, WebSocket über QUIC/HTTP/3, Raw-TCP-Fallback — dieselbe Komponente, dieselben Events. Transport wechseln, indem du eine Eigenschaft änderst.

WatchDog-Auto-Reconnect

Aktiviere WatchDog und der Client verbindet sich mit Exponential Back-Off neu, authentifiziert sich neu, abonniert MQTT-Topics erneut und sendet jede gepufferte Publikation noch einmal — das kanonische Mobile-/IoT-Muster, bereits implementiert.

Threading ist gelöst

Der Server verwendet unter der Haube einen IOCP-/kqueue-/epoll-Reaktor. Du schreibst Event-Handler; die Bibliothek plant sie über einen Thread-Pool ein, mit Serialisierung pro Verbindung.

permessage-deflate

Automatisch gemäß RFC 7692 ausgehandelt. Schrumpft JSON-Payloads um 70–90 % und wird von jedem modernen Browser und Loadbalancer unterstützt.

Subprotokolle inklusive

MQTT 3.1.1/5.0, AMQP 0.9.1/1.0, STOMP, WAMP und Server-Sent Events laufen über denselben WebSocket-Transport — ein TCP-Socket, mehrere Anwendungsprotokolle.

HTTP-Server inklusive

TsgcWebSocketHTTPServer liefert statische Dateien, REST-Endpunkte, JWT- und OAuth2-geschützte Ressourcen, gzip-komprimierte Antworten und HTTP/2-Upgrade im selben Prozess wie dein WebSocket-Endpunkt aus.

TLS, das wirklich funktioniert

OpenSSL (plattformübergreifend), SChannel (Windows-Kernel-TLS) oder HTTP.sys. Client-Zertifikate, SNI, ALPN, TLS 1.3 mit 0-RTT.

Channels & Broadcast

Serverseitige Channels gruppieren Verbindungen per Name. Broadcast, BroadcastByChannel und BroadcastByUser fächern in einem einzigen Aufruf an Tausende Peers aus.

Praxiserprobt

Seit 2013 in Banken, Börsen, IoT-Flotten und Trading-Firmen produktiv. Monatlich aktualisiert; history.txt verfolgt jeden Fix.

Feature-Checkliste

Alles, was der RFC vorschreibt, plus die operative Härtung, die echte Deployments brauchen.

FähigkeitClientServer
RFC 6455-Framing (Text, Binary, Ping, Pong, Close)JaJa
permessage-deflate (RFC 7692)JaJa
Fragmentierte und Continuation-FramesJaJa
Maskierte Client-NachrichtenJan/a
TLS 1.2 / 1.3 (OpenSSL + SChannel)JaJa
Client-Zertifikate / mTLSJaJa
JWT- & OAuth2-AuthentifizierungJaJa
HTTP/2 + WebSocket (RFC 8441)JaJa
HTTP/3 + WebSocket über QUIC (RFC 9220)JaJa
WatchDog-Auto-ReconnectJan/a
Heart-Beat (PING/PONG)JaJa
Channels & Broadcastn/aJa
Subprotokolle (MQTT / AMQP / STOMP / WAMP / SSE)JaJa
HTTP.sys-Hosting (Windows-Kernel)n/aJa
Linux-Daemon-ModusJaJa

Hello WebSocket — Delphi-Client in 12 Zeilen

Zieh einen TsgcWebSocketClient auf das Formular, setze Host/Port, behandle OnMessage, setze Active := True.

uses
  sgcWebSocket, sgcWebSocket_Classes;

procedure TForm1.FormCreate(Sender: TObject);
begin
  WS := TsgcWebSocketClient.Create(nil);
  WS.URL := 'wss://echo.websocket.events';
  WS.WatchDog.Enabled := True;
  WS.WatchDog.Interval := 5;
  WS.OnConnect := WSConnect;
  WS.OnMessage := WSMessage;
  WS.OnDisconnect := WSDisconnect;
  WS.Active := True;
end;

procedure TForm1.WSMessage(Connection: TsgcWSConnection; const Text: string);
begin
  Memo1.Lines.Add('<< ' + Text);
end;

procedure TForm1.ButtonSendClick(Sender: TObject);
begin
  WS.WriteData('{"hello":"world"}');
end;

Die Server-Seite ist symmetrisch — zieh einen TsgcWebSocketHTTPServer auf, setze Port, behandle OnConnect und OnMessage, rufe Broadcast auf, um an jeden verbundenen Peer auszufächern.

Unterstützte Delphi- & C++Builder-Versionen

Ein Quellbaum, 22 Runtime-Pakete — alle Delphi-Releases, die noch im aktiven kommerziellen Einsatz sind.

EditionVersionen
Delphi / RAD Studio7, 2007, 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13
C++Builder2007, 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10, 10.1, 10.2, 10.3, 10.4, 11, 12, 13
FreePascal / Lazarus3.x (über die sgcIndy-Basis)
PlattformenWin32, Win64, Linux64, macOS Intel/ARM, iOS Gerät + Simulator, Android ARM/ARM64

Weiterstöbern

Der WebSocket-Transport ist die Grundlage jedes weiteren Protokolls in der Bibliothek.

Was sind WebSockets?

Hintergrund zum Protokoll RFC 6455, zum Handshake, zum Framing und zu Anwendungsfällen.

MQTT-Subprotokoll

Fahre MQTT 3.1.1 / 5.0 über dieselbe WebSocket-Verbindung.

HTTP/2-Client & -Server

Multiplexes HTTP/2 mit Server Push und WebSocket-over-HTTP/2.

Echtzeit-Protokoll-Auswahl

WebSocket vs. SSE vs. HTTP/2-Push vs. MQTT vs. WebRTC — Entscheidungs-Matrix.

Blog: Channels, Gruppen & Benutzer

Muster-Leitfaden für das Senden an Teilmengen von Verbindungen.

Blog: WatchDog & BeforeConnect

Wie der Auto-Reconnect-Lebenszyklus unter der Haube funktioniert.

Blog: Schnellere Kompression

Tuning von permessage-deflate auf Durchsatz versus CPU.

Häufig gestellte Fragen

Welche Delphi-Versionen werden unterstützt?

Jedes kommerzielle Delphi-Release von Delphi 7 (2002) bis Delphi 13 (2025), plus die passenden C++Builder-Versionen. Wir liefern 22 separate Runtime-Pakete — eines pro IDE — aus einem einzigen Quellbaum. Es gibt keine separate „Legacy“-SKU; jeder Kunde bekommt jede Version.

Unterstützt die WebSocket-Komponente TLS / wss://?

Ja. Setze URL := 'wss://...' und wähle einen TLS-Provider: OpenSSL (plattformübergreifend, in der Testversion enthalten), SChannel (Windows-Kernel-TLS, keine DLLs auszuliefern) oder HTTP.sys (serverseitig, Zertifikat im Windows-Zertifikatsspeicher). Client-Zertifikate, SNI, ALPN, TLS 1.3 und 0-RTT werden alle unterstützt.

Wie viele gleichzeitige Verbindungen schafft der Server?

Unter Windows verwendet der Server IOCP und skaliert routinemäßig auf über 50.000 gleichzeitige Verbindungen pro Prozess auf Standard-Hardware. Unter Linux skaliert der epoll-Reaktor ähnlich. Die harte Grenze liegt auf OS-Ebene (File Descriptors, ephemerer Portbereich, Kernel-Speicher), nicht in der Bibliothek.

Wie sieht das Lizenzmodell aus?

Royalty-freie Dauerlizenz pro Entwickler mit einem Jahr Updates inklusive. Einzelentwickler-, Team- und Site-Lizenzen verfügbar — siehe Preise. Quellcode liegt jeder kommerziellen Edition bei.

Bereit, WebSockets in deine Delphi-App einzubauen?

Lade die voll funktionsfähige 30-Tage-Testversion herunter — Client, Server, alle Subprotokolle, alle Delphi-Versionen.