QWebSocket 与 JS 怎么交互
时间: 2023-07-16 20:14:39 浏览: 46
在Qt中使用QWebSocket可以方便地与Web前端进行交互。以下是一个简单的示例:
1.在Qt项目中添加一个QWebSocketServer对象,并监听客户端连接:
```c++
QWebSocketServer *server = new QWebSocketServer("My Server", QWebSocketServer::NonSecureMode, this);
connect(server, &QWebSocketServer::newConnection, this, &MyServer::onNewConnection);
if (!server->listen(QHostAddress::Any, 1234)) {
qWarning() << "Unable to start server:" << server->errorString();
}
```
2.在客户端中,使用JavaScript创建一个WebSocket对象并连接到服务器:
```javascript
var socket = new WebSocket("ws://localhost:1234");
socket.onopen = function() {
console.log("Connected to server");
};
socket.onmessage = function(event) {
console.log("Received message:", event.data);
};
```
3.在服务器的onNewConnection函数中,获取连接的QWebSocket对象,并向客户端发送消息:
```c++
void MyServer::onNewConnection()
{
QWebSocket *socket = server->nextPendingConnection();
connect(socket, &QWebSocket::textMessageReceived, this, &MyServer::onTextMessageReceived);
socket->sendTextMessage("Hello, client!");
}
```
4.在服务器的onTextMessageReceived函数中,处理来自客户端的消息:
```c++
void MyServer::onTextMessageReceived(const QString &message)
{
qDebug() << "Received message:" << message;
}
```
这样就可以在Qt和JavaScript之间进行简单的WebSocket通信了。