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