QWebSocket client example | Qt WebSockets 5.4

- Qt 5.4
- Qt WebSockets
- QWebSocket client example
- Qt 5.4.2 Reference Documentation

# QWebSocket client example

## Description

The EchoClient example implements a WebSocket client that sends a message to a WebSocket server and dumps the answer that it gets back. This example should ideally be used with the EchoServer example.

## Code

We start by connecting to the `connected()` signal.

    EchoClient::EchoClient(const QUrl &url, bool debug, QObject *parent) :
        QObject(parent),
        m_url(url),
        m_debug(debug)
    {
        if (m_debug)
            qDebug() << "WebSocket server:" << url;
        connect(&m_webSocket, &QWebSocket::connected, this, &EchoClient::onConnected);
        connect(&m_webSocket, &QWebSocket::disconnected, this, &EchoClient::closed);
        m_webSocket.open(QUrl(url));
    }

After the connection, we open the socket to the given url.

    void EchoClient::onConnected()
    {
        if (m_debug)
            qDebug() << "WebSocket connected";
        connect(&m_webSocket, &QWebSocket::textMessageReceived,
                this, &EchoClient::onTextMessageReceived);
        m_webSocket.sendTextMessage(QStringLiteral("Hello, world!"));
    }

When the client is connected successfully, we connect to the `onTextMessageReceived()` signal, and send out "Hello, world!". If connected with the EchoServer, we will receive the same message back.

    void EchoClient::onTextMessageReceived(QString message)
    {
        if (m_debug)
            qDebug() << "Message received:" << message;
        m_webSocket.close();
    }

Whenever a message is received, we write it out.