Qt WebChannel ChatClient QML-Anwendung

Ein QML-Client, der über einen WebSocket mit einem QWebChannel Server kommuniziert.

ChatClient QML bietet einen einfachen QWebChannel Client, der mit JavaScript und QML implementiert wurde.

Implementieren eines Web-Channel-Clients in QML

Dieses Beispiel zeigt, wie Sie die grundlegenden Elemente mit der JavaScript-Client-Implementierung von QWebChannel verwenden können, z. B. die Verbindung zu Signalen (newMessage), den Aufruf von Slots (sendMessage) und die Behandlung von Eigenschaftsänderungen (userList).

Der Client initialisiert eine WebSocket Verbindung zum Chatserver an Port 12345 auf localhost. Wenn der WebSocket geöffnet wird, wird ein WebChannel-Objekt erstellt, das den WebSocket als erstes Argument und eine Callback-Funktion als zweites Argument erhält. Wenn die Callback-Funktion aufgerufen wird, erhält der Client ein Objekt namens chatserver, das alle notwendigen Signale, Slots und Eigenschaften für die Implementierung eines Chat-Clients enthält. Die Callback-Funktion verbindet userListChanged, newMessage und keepAlive auf dem Objekt chatserver mit separaten Funktionen, die diese Signale behandeln, und ruft dann show auf loginWindow auf.

Die Window mit loginWindow als id behandelt den Anmeldevorgang. Es enthält ein LoginForm, das in LoginForm.ui.qml definiert ist. Wenn Sie auf die Schaltfläche drücken, wird die Funktion login auf dem Objekt chatserver mit dem Anmeldenamen und einer Callback-Funktion als Argumente aufgerufen. Diese Callback-Funktion verarbeitet, ob die Anmeldung erfolgreich war oder nicht.

Nach der Anmeldung verwendet der Client ein MainForm, das in MainForm.ui.qml definiert ist, mit mainUi als id, um Nachrichten über den Steckplatz sendMessage zu versenden, Nachrichten über das Signal newMessage zu lesen und die Namen aller verbundenen Benutzer über die Eigenschaft userList anzuzeigen. Außerdem antwortet der Client auf das Signal keepAlive des Servers, damit der Server nicht verbundene Clients erkennen und aus der Eigenschaft userList entfernen kann.

Der Client ist in der Lage, mit dem Qt WebChannel ChatServer Beispiel zu arbeiten.

Beispielprojekt @ code.qt.io

Siehe auch Qt WebChannel ChatServer Beispiel und Qt WebChannel ChatClient HTML Beispiel.

© 2025 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.