-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathvncproxyclient.cpp
42 lines (35 loc) · 1.26 KB
/
vncproxyclient.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "vncproxyclient.h"
#include "websocketserver.h"
VncProxyClient::VncProxyClient(QString clientId, QString host, int port)
: QObject(nullptr) {
this->host = host;
this->port = port;
this->clientId = clientId;
socket = new QTcpSocket(this);
connect(socket, &QTcpSocket::readyRead, this, &VncProxyClient::readData);
connect(socket, &QTcpSocket::connected, this, &VncProxyClient::connected);
connect(socket, &QTcpSocket::disconnected, this,
&VncProxyClient::disconnectFromHost);
auto webSocketClient =
WebSocketServer::getInstance()->getWebSocketClient(clientId);
connect(webSocketClient, &QWebSocket::binaryMessageReceived, this,
[=](const QByteArray& message) { emit writeData(message); });
connect(this, &VncProxyClient::writeData, this,
[=](QByteArray data) { socket->write(data); });
}
VncProxyClient::~VncProxyClient() {
;
socket->disconnectFromHost();
}
void VncProxyClient::connectToHost() {
socket->connectToHost(this->host, port);
}
void VncProxyClient::connected() {}
void VncProxyClient::readData() {
QByteArray data = socket->readAll();
WebSocketServer::getInstance()->sendData(clientId, data);
}
void VncProxyClient::disconnectFromHost() {
emit disconnected();
socket->disconnectFromHost();
}