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); }
连接后,我们打开到指定网址的套接字。
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(); }
每当接收到消息时,我们将其写入。
© 2024 Qt公司有限公司。此处包含的文档贡献的版权属于其各自的所有者。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可(FDL)版本1.3的条款授予的。Qt和相关的标志是芬兰和/或世界上其他国家的Qt公司注册商标。所有其他商标均为其各自所有者的财产。