Qt WebChannel Exemple de serveur de chat
Un serveur de chat simple implémenté à l'aide de l'API C++ de QWebChannel.

ChatServer fournit un service de chat auquel peuvent se connecter l'application QML ChatClient d'Qt WebChannel et l'exemple HTML ChatClient d'Qt WebChannel .
Exécution de l'exemple
Vous pouvez exécuter l'exemple à partir de :
- Qt Creator
Ouvrez le mode « Welcome » et sélectionnez l’exemple à l’adresse Examples. Pour plus d’informations, consultez Qt Creator: Tutoriel : Compiler et exécuter.
- Qt Extension for Visual Studio Code
Exécutez la commande « Qt: Open Qt examples » à partir de Command Palette, puis sélectionnez l’exemple dans la liste. Pour plus d’informations, consultez Qt Extension for Visual Studio Code: Tutoriel : Compiler et exécuter.
Implémentation d’un serveur de chat
L'application C++ implémente un objet ` QObject ` qui fournit tous les mécanismes nécessaires à un service de chat. Cet objet est publié via une interface ` QWebChannel ` qui utilise un WebSocket comme protocole de transport.
Le serveur fournit une méthode d’ login de base (nom d’utilisateur uniquement, pas de mot de passe), qui doit être appelée avec succès avant qu’un client puisse discuter. Une fois connecté, un client peut appeler la méthode sendMessage et recevoir le signal newMessage pour écrire et recevoir des messages. De plus, la propriété userList fournit les noms de tous les autres clients connectés. Par ailleurs, le serveur envoie périodiquement un signal « keepAlive » à tous les clients. Les clients doivent répondre à ce signal, faute de quoi ils seront supprimés de la propriété « userList ».
Cet exemple montre comment les éléments de base d’ QObject peuvent être utilisés avec QWebChannel, à savoir les signaux (newMessage), les slots (sendMessage) et les propriétés (userList).
Comme il s'agit d'une simple application serveur, des clients distincts sont nécessaires pour interagir avec elle. L'application QML «Qt WebChannel ChatClient » et l'exemple HTML «Qt WebChannel ChatClient » sont des implémentations de clients compatibles avec ce serveur.
© 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.