Auf dieser Seite

Beispiel für einen QWebSocket-Client

Beschreibung

Das Beispiel „EchoClient“ implementiert einen WebSocket-Client, der eine Nachricht an einen WebSocket-Server sendet und die erhaltene Antwort ausgibt. Dieses Beispiel sollte idealerweise zusammen mit dem Beispiel „EchoServer“ verwendet werden.

Code

Zunächst verbinden wir uns mit dem Signal `connected()`.

EchoClient::EchoClient(const QUrl&url, bool debug, QObject*parent) :
    QObject(parent),
    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(url);
}

Nach dem Verbindungsaufbau öffnen wir den Socket zur angegebenen URL url.

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

Sobald der Client erfolgreich verbunden ist, binden wir das Signal `onTextMessageReceived()` ein und senden „Hello, world!“ aus. Bei einer Verbindung mit dem EchoServer erhalten wir dieselbe Nachricht zurück.

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

Sobald eine Nachricht empfangen wird, geben wir sie aus.

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