c++ 与 js 怎样通过 QwebSocket 建立连接
时间: 2024-05-15 14:13:06 浏览: 46
用qt+QWebEngineView+tcp实现js与c++的通讯
4星 · 用户满意度95%
在使用 QWebSocket 建立 C++ 与 JS 的连接时,需要分别实现服务端和客户端。以下是一个简单的例子:
C++服务端代码:
```cpp
#include <QtCore/QCoreApplication>
#include <QtWebSockets/QWebSocketServer>
#include <QtWebSockets/QWebSocket>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QWebSocketServer server(QStringLiteral("Echo Server"), QWebSocketServer::NonSecureMode);
if (server.listen(QHostAddress::Any, 1234)) {
qDebug() << "Listening on port 1234";
}
QObject::connect(&server, &QWebSocketServer::newConnection, [&server]() {
QWebSocket *socket = server.nextPendingConnection();
QObject::connect(socket, &QWebSocket::textMessageReceived, [socket](const QString &message) {
qDebug() << "Received message:" << message;
socket->sendTextMessage(message);
});
});
return a.exec();
}
```
JS客户端代码:
```js
let socket = new QWebSocket("Echo Server");
socket.open(() => {
console.log("Connected to server");
});
socket.textMessageReceived.connect((message) => {
console.log("Received message:", message);
});
socket.sendTextMessage("Hello from JS");
```
需要注意的是,C++服务端代码需要使用 QtWebSockets 模块,因此需要在项目文件中添加以下语句:
```
QT += websockets
```
同时,在 JS 客户端代码中,需要在 HTML 文件中添加以下语句:
```html
<script src="qrc:///qtwebsockets/qwebsocket.js"></script>
```
以上代码仅供参考,实际开发中需要根据具体需求进行修改。
阅读全文