Greeting::Greeting() { QHttpServer *server = new QHttpServer; server->listen(QHostAddress::Any, 5000); connect(server, SIGNAL(newRequest(QHttpRequest*, QHttpResponse*)), this, SLOT(handle(QHttpRequest*, QHttpResponse*))); }
BodyData::BodyData() { QHttpServer *server = new QHttpServer(this); connect(server, SIGNAL(newRequest(QHttpRequest*, QHttpResponse*)), this, SLOT(handleRequest(QHttpRequest*, QHttpResponse*))); server->listen(QHostAddress::Any, 8081); }
MyServer::MyServer() { QHttpServer *server = new QHttpServer(this); connect(server, SIGNAL(newRequest(QHttpRequest*, QHttpResponse*)),this, SLOT(handleRequest(QHttpRequest*, QHttpResponse*))); if(!server->listen(QHostAddress::Any, 8080)) { qDebug() << "Server could not start!"; } else { qDebug() << "Server listenning..."; } }
NetworkManager::NetworkManager(AmvSettings *amvSettings, QObject *parent) : QObject(parent), settings(amvSettings) { //UDP udpSocket = new QUdpSocket(this); udpSocket->bind(settings->DiscoverAddress(), settings->DiscoverPort(), QUdpSocket::ShareAddress); connect(udpSocket, &QUdpSocket::readyRead, this, &NetworkManager::processDatagrams); //HTTP QHttpServer *server = new QHttpServer(); connect(server, &QHttpServer::newRequest, this, &NetworkManager::handleReq); //TODO normal multithreading server->listen(settings->HttpAddress(), settings->HttpPort()); }
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QCoreApplication::setApplicationName("evnav-cli"); QCoreApplication::setApplicationVersion("0.1"); QCommandLineParser parser; parser.setApplicationDescription("electric vehicule trip planner"); parser.addHelpOption(); parser.addVersionOption(); parser.addPositionalArgument("osrm", "path to osrm file"); parser.addPositionalArgument("charger", "path to json charger file"); parser.process(app); const QStringList args = parser.positionalArguments(); if (args.size() < 2) { qDebug() << "missing arguments"; parser.showHelp(1); } qDebug() << "loading street data..."; Evnav evnav(args.at(0)); qDebug() << "loading chargers..."; ChargerProvider provider; provider.loadJson(args.at(1)); ChargerProvider dcfc = provider.filter(ChargerProvider::fastChargerFilter); qDebug() << "fast chargers found:" << dcfc.size(); evnav.setChargerProvider(&dcfc); evnav.initGraph(); EvnavServer handler(&evnav); EvnavServer *handlerPtr = &handler; QRegularExpression evnavUrl{"^/route/v1/evnav/.*"}; evnavUrl.optimize(); QHttpServer srv; srv.listen(QHostAddress::Any, 8080, [&](QHttpRequest *req, QHttpResponse *res) { QRegularExpressionMatch match = evnavUrl.match(req->url().path()); if (match.hasMatch()) { req->onEnd([res, req, handlerPtr]() { handlerPtr->handleRequest(req, res); }); } else { res->setStatusCode(qhttp::ESTATUS_NOT_FOUND); res->end(); } return; }); if (!srv.isListening()) { fprintf(stderr, "error spawning the server\n"); return -1; } fprintf(stdout, "server listening\n"); return app.exec(); }