// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! \example standalone \title Qt WebChannel Standalone Example \ingroup qtwebchannel-examples \image standalone-screenshot.png \examplecategory {Web Technologies} \brief A simple chat between a server and a remote client running in a browser. \e{Standalone} demonstrates how to use the QWebChannel C++ API to communicate with an external client. It is a simple chat between a C++ application and a remote HTML client running in your default browser. \include examples-run.qdocinc \section1 Communicating with a Remote Client The C++ application sets up a QWebChannel instance and publishes a \c Core object over it. For the remote client side, the \c {index.html} file is opened. Both show a dialog with the list of received messages and an input box to send messages to the other end. The \c Core emits the \c Core::sendText() signal when the user sends a message. The signal automatically gets propagated to the HTML client. When the user enters a message on the HTML side, \c Core::receiveText() is called. All communication between the HTML client and the C++ server is done over a WebSocket. The C++ side instantiates a QWebSocketServer and wraps incoming QWebSocket connections in QWebChannelAbstractTransport objects. These objects are then connected to the QWebChannel instance. \sa {Qt WebChannel JavaScript API} */