QWebSocket-Client-Beispiel
Beschreibung
Das EchoClient-Beispiel implementiert einen WebSocket-Client, der eine Nachricht an einen WebSocket-Server sendet und die Antwort, die er zurückbekommt, ausgibt. Dieses Beispiel sollte idealerweise zusammen mit dem EchoServer-Beispiel verwendet werden.
Code
Wir beginnen mit einer Verbindung zum 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 auf die angegebene url.
void EchoClient::onConnected() { if (m_debug) qDebug() << "WebSocket connected"; connect(&m_webSocket, &QWebSocket::textMessageReceived, this, &EchoClient::onTextMessageReceived); m_webSocket.sendTextMessage(QStringLiteral("Hallo, Welt!")); }
Wenn der Client erfolgreich verbunden ist, stellen wir eine Verbindung zum Signal `onTextMessageReceived()` her und senden "Hello, world!" aus. Wenn wir mit dem EchoServer verbunden sind, werden wir die gleiche Nachricht zurückerhalten.
void EchoClient::onTextMessageReceived(QString message) { if (m_debug) qDebug() << "Message received:" << message; m_webSocket.close(); }
Jedes Mal, wenn eine Nachricht empfangen wird, schreiben wir sie aus.
© 2025 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.