Auf dieser Seite

Qt WebSockets Übersicht

Qt WebSockets ermöglicht es Ihnen, WebSocket-fähige Anwendungen zu entwickeln. Es bietet eine Implementierung des WebSocket-Protokolls, das von der IETF (Internet Engineering Task Force) als bessere Alternative für die bidirektionale Kommunikation unter Verwendung der bestehenden Web-Infrastruktur angeboten wird.

In der Vergangenheit mussten Webanwendungen, die bidirektionale Kommunikation oder Push-Benachrichtigungen benötigten, auf eine der verfügbaren HTTP-basierten Lösungen zurückgreifen. Diese Lösungen nutzten verschiedene Techniken wie Polling, Long-Polling und Streaming, um die Einschränkungen des HTTP-Protokolls zu überwinden, das nicht für solche Anwendungsfälle konzipiert ist. Dies führte zu hoher Netzwerklatenz, unnötigem Datenaustausch sowie veralteten oder überholten Daten. Das WebSocket-Angebot der IETF trägt dazu bei, diese Probleme weitgehend zu überwinden.

Wie funktioniert es?

Flussdiagramm des WebSocket-Protokolls

Wie Sie in der grafischen Darstellung sehen können, besteht eine WebSocket-basierte Lösung aus einer clientseitigen und einer serverseitigen Komponente. Die native clientseitige Unterstützung für WebSocket ist in den meisten gängigen Webbrowsern wie Google Chrome, Internet Explorer, Safari usw. verfügbar. Die serverseitige Unterstützung für WebSocket macht es zu einer Komplettlösung, die eine bidirektionale Kommunikation ermöglicht. Mit jedem Browser, der WebSocket nativ unterstützt, sollten Sie eine einfache HTML- und JavaScript-basierte Client-Anwendung mithilfe der HTML5-WebSocket-API ausführen können.

Eine WebSocket-Verbindung beginnt mit einem anfänglichen HTTP-kompatiblen Handshake, der Abwärtskompatibilität gewährleistet, sodass die WebSocket-Verbindungen die Standard-Ports für HTTP (80) und HTTPS (443) gemeinsam nutzen können. Nach erfolgreichem Handshake ist die Verbindung für den Datenaustausch geöffnet, bis eine der beiden Parteien die Verbindung beendet.

Das WebSocket-Protokoll verwendet die URL-Schemas ws: und wss: zur Darstellung ungesicherter bzw. gesicherter WebSocket-Anfragen. Wird während des anfänglichen Handshakes ein Proxy-Server erkannt, versucht das Protokoll, einen Tunnel einzurichten, indem es eine „ HTTP CONNECT “-Anweisung an den Proxy sendet. Der Tunnelansatz zur Behandlung von Proxys wird unabhängig vom Anfragetyp verwendet, funktioniert jedoch nachweislich besser mit TLS (Transport Layer Security) bei sicheren Verbindungen.

Typische Anwendungsfälle

WebSocket eignet sich am besten für Szenarien, in denen

  • die dargestellten Daten aktuell sein müssen,
  • eine geringe Netzwerklatenz und ein minimaler Datenaustausch entscheidend sind.

Einige Anwendungsbeispiele, bei denen es mit dem herkömmlichen Ansatz schwierig ist, diese Anforderungen zu erfüllen, sind Instant Messaging, Online-Gaming, Online-Aktienhandel und so weiter.

Rolle des Qt WebSockets

Das Modul „ Qt WebSockets “ stellt APIs zur Entwicklung von WebSocket-basierten Server- und Client-Anwendungen bereit. Ein Anwendungsbeispiel für diese APIs ist eine Serveranwendung, die Börsendaten bereitstellt, sowie eine Client-Anwendung, die sich für Push-Benachrichtigungen registriert, sobald sich der Kurs bestimmter Aktien ändert.

Das Modul stellt sowohl C++- als auch QML-Versionen der API bereit, sodass Sie die für Ihre Anforderungen geeignete Variante auswählen können.

Qt WebSockets mit Cloud-Diensten

Die Client-Anwendung ist in der Regel auf einen externen Dienst für die Datenversorgung angewiesen. Da die meisten dieser Dienstanbieter WebSocket noch nicht unterstützen, müssen Sie letztendlich eine WebSocket-fähige Serveranwendung entwickeln, um diese Lücke zu schließen. Sie können den Server auf einem WebSocket-Gateway-Dienst für Unternehmen, beispielsweise einem Cloud-Dienst, ausführen und so den Aufwand für die Wartung der erforderlichen Infrastruktur zum Hosten eines solchen Dienstes vermeiden.

Die meisten Cloud-Dienste bieten ein „Platform as a Service“ (PaaS)-Backend, das die Bereitstellung und den Betrieb einer Instanz Ihrer Serveranwendung in der Cloud ermöglicht. Die Client-Anwendungen können über eine WebSocket-URL eine Verbindung zum laufenden Server herstellen und Daten empfangen.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.