QWebSocketクライアントの例

説明

EchoClient サンプルは、WebSocket サーバーにメッセージを送信し、戻ってきた応答をダンプする WebSocket クライアントを実装しています。この例は、EchoServer の例と一緒に使用するのが理想的です。

コード

まず `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);
}

接続後、与えられた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();
}

メッセージを受信するたびに、それを書き出します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。