websocket server

add wss possibility
This commit is contained in:
2026-02-02 14:29:46 +01:00
parent f14aeedff9
commit 0fc0e5cd0f
2 changed files with 30 additions and 1 deletions
+29 -1
View File
@@ -1,11 +1,14 @@
#include "websocket.hpp" #include "websocket.hpp"
#include "QtWebSockets/qwebsocket.h" #include "QtWebSockets/qwebsocket.h"
#include "QtWebSockets/qwebsocketserver.h" #include "QtWebSockets/qwebsocketserver.h"
#include <QtCore/QFile>
#include <QtNetwork/QSslCertificate>
#include <QtNetwork/QSslKey>
#include <spdlog/spdlog.h> #include <spdlog/spdlog.h>
Websocket::Websocket(uint16_t port, QObject *parent) Websocket::Websocket(uint16_t port, QObject *parent)
: QObject(parent), : QObject(parent),
m_pWebSocketServer(new QWebSocketServer(QStringLiteral("sim_us Server"), QWebSocketServer::NonSecureMode, this)) m_pWebSocketServer(new QWebSocketServer(QStringLiteral("sim_us Server"), QWebSocketServer::NonSecureMode, parent))
{ {
if (m_pWebSocketServer->listen(QHostAddress::Any, port)) if (m_pWebSocketServer->listen(QHostAddress::Any, port))
{ {
@@ -15,6 +18,31 @@ Websocket::Websocket(uint16_t port, QObject *parent)
} }
} }
Websocket::Websocket(uint16_t port, QString key_file, QString cert_file, QObject *parent)
: QObject(parent),
m_pWebSocketServer(new QWebSocketServer(QStringLiteral("sim_us Server"), QWebSocketServer::SecureMode, parent))
{
QSslConfiguration sslConfiguration;
QFile certFile(cert_file);
QFile keyFile(key_file);
certFile.open(QIODevice::ReadOnly);
keyFile.open(QIODevice::ReadOnly);
QSslCertificate certificate(&certFile, QSsl::Pem);
QSslKey sslKey(&keyFile, QSsl::Rsa, QSsl::Pem);
certFile.close();
keyFile.close();
sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyNone);
sslConfiguration.setLocalCertificate(certificate);
sslConfiguration.setPrivateKey(sslKey);
m_pWebSocketServer->setSslConfiguration(sslConfiguration);
if (m_pWebSocketServer->listen(QHostAddress::Any, port))
{
SPDLOG_DEBUG("Server listening on port {}", port);
connect(m_pWebSocketServer, &QWebSocketServer::newConnection, this, &Websocket::onNewConnection);
connect(m_pWebSocketServer, &QWebSocketServer::closed, this, &Websocket::closed);
}
}
Websocket::~Websocket() Websocket::~Websocket()
{ {
m_pWebSocketServer->close(); m_pWebSocketServer->close();
+1
View File
@@ -13,6 +13,7 @@ class Websocket : public QObject
public: public:
Websocket(uint16_t port, QObject *parent = nullptr); Websocket(uint16_t port, QObject *parent = nullptr);
Websocket(uint16_t port, QString key_file, QString cert_file, QObject *parent = nullptr);
~Websocket(); ~Websocket();
void broadcast(QString message); void broadcast(QString message);