#include "webClient.h" #include #include #include #include #include #include webClient::webClient(QObject *parent /*= Q_NULLPTR*/): QObject(parent) { connect(&m_webSocket, &QWebSocket::connected, this, &webClient::onConnected); connect(&m_webSocket, &QWebSocket::disconnected, this, &webClient::onDisConnected); connect(&m_webSocket, &QWebSocket::textMessageReceived, this, &webClient::onTextMessageReceived); connect(&m_webSocket, &QWebSocket::binaryMessageReceived, this, &webClient::onBinaryMessageReceived); } webClient::~webClient() { } void webClient::openUrl(QString url) { m_webSocket.open(QUrl(url)); } void webClient::onClose() { m_webSocket.close(); } Q_SLOT void webClient::onConnected() { emit sgConnect(true); } Q_SLOT void webClient::onDisConnected() { emit sgConnect(false); } Q_SLOT void webClient::onTextMessageReceived(QString message) { emit sgRecvStrData(message); } Q_SLOT void webClient::onBinaryMessageReceived(const QByteArray &message) { emit sgRecvBinData(message); } void webClient::onSendJson(QJsonObject &obj) { QJsonDocument doc = QJsonDocument(obj); QByteArray bData = doc.toJson(); m_webSocket.sendBinaryMessage(bData); } void webClient::sendSmallImage(QImage &img) { QJsonObject imageData; imageData["width"] = img.width(); imageData["height"] = img.height(); imageData["format"] = img.format(); QByteArray imgData; imgData.append((char*)img.bits(), img.byteCount()); imageData["data_base64"] = QString(imgData.toBase64()); imageData["image_data"] = 1; onSendJson(imageData); } void webClient::parasImage(QJsonObject &imgData) { if (imgData.contains("image_data")) { QByteArray imgbase64; if (imgData["data_base64"].isString()) { imgbase64 = imgData["data_base64"].toString().toUtf8(); } QByteArray imgArr = QByteArray::fromBase64(imgbase64); QString imgPath = QApplication::applicationDirPath() + QString("/%1.jpg").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh_mm_ss zzz")); QPixmap newImg; newImg.loadFromData(imgArr); newImg.save(imgPath); int width = imgData["width"].toInt(); int height = imgData["height"].toInt(); int format = imgData["format"].toInt(); QImage::Format qfmt = static_cast(format); QImage img((uchar *)imgArr.data(), width, height, qfmt); } } void webClient::saveJson(QJsonObject obj) { QJsonDocument doc = QJsonDocument(obj); QByteArray data = doc.toJson(); QString filePath = QApplication::applicationDirPath() + QString("/file%1.json").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh_mm_ss zzz")); QFile file(filePath); if (file.open(QIODevice::WriteOnly)) { file.write(data); file.close(); } }