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.
我們從連接到 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(); }
每當收到消息時,我們把它寫入輸齣。