diff --git a/espremotemanager.pro b/espremotemanager.pro index 2887f89..9e8a919 100644 --- a/espremotemanager.pro +++ b/espremotemanager.pro @@ -3,7 +3,8 @@ TEMPLATE = subdirs SUBDIRS += \ espremoteagent \ espremotemanager \ - webserver + webserver \ + websocketlogger espremoteagent.depends += webserver espremotemanager.depends += webserver diff --git a/websocketlogger/main.cpp b/websocketlogger/main.cpp new file mode 100644 index 0000000..ea00605 --- /dev/null +++ b/websocketlogger/main.cpp @@ -0,0 +1,55 @@ +#include +#include +#include +#include + +#include + +int main(int argc, char *argv[]) +{ + QCoreApplication app{argc, argv}; + QCoreApplication::setApplicationName("websocketlogger"); + QCoreApplication::setApplicationVersion("1.0"); + + QCommandLineParser parser; + parser.setApplicationDescription("V3 Produktionstool"); + parser.addHelpOption(); + parser.addVersionOption(); + parser.addPositionalArgument("url", QCoreApplication::translate("main", "Websocket url")); + + parser.process(app); + + const QStringList args = parser.positionalArguments(); + + if (args.isEmpty()) + qFatal("no url specified!"); + + QUrl url = QUrl::fromUserInput(args.first()); + if (!url.isValid()) + qFatal("invalid url"); + + QWebSocket socket; + + const auto connect = [&](){ + qDebug() << "connecting to" << url; + socket.open(url); + }; + + QObject::connect(&socket, &QWebSocket::connected, [](){ + qDebug() << "connected"; + }); + QObject::connect(&socket, &QWebSocket::disconnected, [&](){ + qDebug() << "disconnected"; + QTimer::singleShot(5000, &socket, connect); + }); + QObject::connect(&socket, &QWebSocket::textMessageReceived, [](const QString &message){ + printf("%s\n", message.toStdString().c_str()); + }); + QObject::connect(&socket, &QWebSocket::binaryMessageReceived, [](){ + qDebug() << "binaryMessageReceived"; + }); + + connect(); + + return app.exec(); +} diff --git a/websocketlogger/websocketlogger.pro b/websocketlogger/websocketlogger.pro new file mode 100644 index 0000000..509e34d --- /dev/null +++ b/websocketlogger/websocketlogger.pro @@ -0,0 +1,25 @@ +QT = core network websockets + +TARGET = websocketlogger + +TEMPLATE = app + +CONFIG += console +CONFIG -= app_bundle + +PROJECT_ROOT = .. + +DESTDIR = $${OUT_PWD}/$${PROJECT_ROOT}/bin + +DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +DBLIBS += + +HEADERS += + +SOURCES += \ + main.cpp + +OTHER_FILES += + +include($${PROJECT_ROOT}/project.pri)