Spec-Zone.ru › Qt 5.6

Пример клиента 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/archives/qt-5.6/echoclient.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API