Qt WebChannel ChatServer Example

A simple chat server implemented using the QWebChannel C++ API.

ChatServer provides a chat service that the Qt WebChannel ChatClient QML Application and Qt WebChannel ChatClient HTML Example can connect to.

Running the Example

To run the example from Qt Creator, open the Welcome mode and select the example from Examples. For more information, visit Building and Running an Example.

Implementing a Chat Server

The C++ application implements a QObject which provides all mechanisms required for a chat service. This object is published through a QWebChannel which uses a WebSocket as transport.

The server provides a basic login method (username only, no passwords), which must be successfully invoked before a client is able to chat. After login, a client can invoke the method sendMessage and receive the signal newMessage to write and receive messages. Furthermore, there is a userList property which provides the names of all other connected clients. Additionally the server sends a keepAlive signal periodically to all clients. The clients have to respond to this signal, otherwise the client will be removed from the userList property.

The example shows how basic QObject elements can be used with QWebChannel, that is signals (newMessage), slots (sendMessage), and properties (userList).

Because this is a plain server application, separate clients are needed to interact with it. Qt WebChannel ChatClient QML Application and Qt WebChannel ChatClient HTML Example are client implementations compatible with this server.

Example project @ code.qt.io

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