Пример клиента QWebSocket
Описание
Пример EchoClient реализует WebSocket-клиента, который отправляет сообщение WebSocket-серверу и выводит полученный ответ. Этот пример следует использовать с примером EchoServer.
Код
Начинаем с подключения к сигналу `connected()`.
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));
} После подключения открываем сокет по заданному url.
void EchoClient::onConnected()
{
if (m_debug)
qDebug() << "WebSocket connected";
connect(&m_webSocket, &QWebSocket::textMessageReceived,
this, &EchoClient::onTextMessageReceived);
m_webSocket.sendTextMessage(QStringLiteral("Hello, world!"));
} При успешном подключении подключаемся к сигналу `onTextMessageReceived()`, отправляем "Hello, world!". При подключении к EchoServer получим то же самое сообщение обратно.
void EchoClient::onTextMessageReceived(QString message)
{
if (m_debug)
qDebug() << "Message received:" << message;
m_webSocket.close();
} При получении сообщения, выводим его.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/echoclient.html