Qt WebChannel Einzelbeispiel
Ein einfacher Chat zwischen einem Server und einem Remote-Client, der in einem Browser ausgeführt wird.

Das eigenständige Beispiel veranschaulicht, wie man die C++-API „ QWebChannel “ zur Kommunikation mit einem externen Client nutzt. Es handelt sich um einen einfachen Chat zwischen einer C++-Anwendung und einem entfernten HTML-Client, der in Ihrem Standardbrowser ausgeführt wird.
Ausführen des Beispiels
Sie können das Beispiel wie folgt ausführen:
- Qt Creator
Öffnen Sie den „ Welcome “-Modus und wählen Sie das Beispiel unter „ Examples “ aus. Weitere Informationen finden Sie unter Qt Creator: Tutorial: Erstellen und Ausführen.
- Qt Extension for Visual Studio Code
Führen Sie den Befehl „ Qt: Open Qt examples “ über „ Command Palette “ aus und wählen Sie das Beispiel aus der Liste aus. Weitere Informationen finden Sie unter Qt Extension for Visual Studio Code: Tutorial: Erstellen und Ausführen.
Kommunikation mit einem Remote-Client
Die C++-Anwendung richtet eine „ QWebChannel “-Instanz ein und veröffentlicht darüber ein „ Core “-Objekt. Auf der Seite des Remote-Clients wird „ index.html “ in Ihrem Standardbrowser ausgeführt. Beide zeigen ein Dialogfeld mit der Liste der empfangenen Nachrichten und ein Eingabefeld zum Senden von Nachrichten an die andere Seite an.
Der ` Core ` sendet das Signal ` Core::sendText() `, wenn der Benutzer eine Nachricht sendet. Das Signal wird automatisch an den HTML-Client weitergeleitet. Wenn der Benutzer auf der HTML-Seite eine Nachricht eingibt, wird Core::receiveText() aufgerufen.
Die gesamte Kommunikation zwischen dem HTML-Client und dem C++-Server erfolgt über einen WebSocket. Auf der C++-Seite wird ein ` QWebSocketServer ` instanziiert und eingehende ` QWebSocket `-Verbindungen werden in ` QWebChannelAbstractTransport `-Objekte verpackt. Diese Objekte werden dann mit der ` QWebChannel `-Instanz verbunden.
Bereitstellung der Client-Seite
Die Seite „ index.html “ und das von ihr geladene Skript „ qwebchannel.js “ werden als Qt-Ressourcen in die Anwendung eingebunden. Die Anwendung stellt sie über einen minimalen Loopback-HTTP-Server bereit und öffnet den Standardbrowser unter der resultierenden „ http:// “-URL. Eine Loopback-URL funktioniert auch dann, wenn Browser und Anwendung kein gemeinsames Dateisystem nutzen, wie beispielsweise auf einer Sandbox- oder cross-kompilierten Plattform.
Das Beispiel implementiert einen eigenen minimalen HTTP-Server, sodass für den Build das Modul „ Qt HTTP Server “ nicht erforderlich ist. In einer echten Anwendung würdest du stattdessen QHttpServer verwenden.
Siehe auch die JavaScript-APIvon „Qt WebChannel “.
© 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.