QWebSocket client example

A sample WebSocket client that sends a message and displays the message that it receives back.

Description

The EchoClient example implements a WebSocket client that sends a message to a WebSocket server and dumps the answer that it gets back. This example should ideally be used with the EchoServer example.

Code

We start by connecting to the `connected()` signal.

def __init__(self, url, debug, parent):
    QObject(parent),
    m_url(url),
    m_debug(debug)

    if (m_debug)
        print("WebSocket server:", url)
    connect(m_webSocket, QWebSocket.connected, self, EchoClient.onConnected)
    connect(m_webSocket, QWebSocket.disconnected, self, EchoClient.closed)
    m_webSocket.open(QUrl(url))

After the connection, we open the socket to the given url.

def onConnected(self):

    if (m_debug)
        print("WebSocket connected")
    connect(m_webSocket, QWebSocket.textMessageReceived,
            self, EchoClient::onTextMessageReceived)
    m_webSocket.sendTextMessage(QStringLiteral("Hello, world!"))

When the client is connected successfully, we connect to the `onTextMessageReceived()` signal, and send out “Hello, world!”. If connected with the EchoServer, we will receive the same message back.

def onTextMessageReceived(self, message):

    if (m_debug)
        print("Message received:", message)
    m_webSocket.close()

Whenever a message is received, we write it out.