Qt Serveur HTTP?
Je voudrais écrire un petit serveur HTTP de l'application qui reçoit les requêtes HTTP GET, les traite et envoie une réponse. En raison de l'historique de l'application, je serais favorable à l'utilisation de Qt pour cela, mais tout ce que je peux trouver, c'est les autres (plus commun) direction: Envoyer une requête à un serveur et de recevoir une réponse, en utilisant QNetworkAccessManager. Ce dont j'ai besoin est quelque chose comme un socket que, lorsqu'une demande arrive, produit un objet où je peux prendre l'url etc. de cette demande, je peut envoyer une réponse appropriée.
Suis-je aveugle ou n'est rien de ce genre dans le framework Qt? Si oui, pouvez-vous recommander des solutions de rechange?
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé ce https://github.com/vinipsmaker/tufao ,
Ses une réponse tardive .. ne sais pas si ça aide.
QtWebApp est un serveur HTTP avec le soutien de l'OBTENIR et de la méthode POST, les cookies, les sessions et les uploads de fichier. L'utilisation de cette bibliothèque est aussi simple que d'écrire une Servlet Java.
Le site web du projet est en allemand, cependant les fichiers téléchargeables sont tous en anglais, y compris la documentation.
Je viens de sortir la première version de QHttpEngine, qui vise à combler le vide que vous avez décrit. L'objectif du projet est de fournir un très simple ensemble de classes qui fournissent un serveur HTTP qui s'intègre avec Qt.
Par exemple, pour servir les fichiers statiques à partir des ressources disponibles dans votre application, tout ce que vous devez faire est de:
Vous pouvez également créer une classe dérivée de
QObject
que d'exposer ses emplacements de points de terminaison dans une API HTTP. Par exemple:Les utilisateurs peuvent ensuite envoyer une requête POST à
/doSomething
avec les paramètres encodé en JSON et recevoir la réponse que le logement génère.L'ensemble de la bibliothèque est entièrement documenté et est livré avec un assez exhaustif de la suite de tests. Il est multi-plateforme et est officiellement testés et pris en charge sous Linux, Windows et Mac OS X. Il y a au moins une application open-source à l'aide de QHttpEngine, NitroShare.
Ici est très simple serveur HTTP web qui permettra de mettre à jour le nombre de secondes, à chaque seconde, depuis une connexion a été effectuée sur le navigateur web.
Il affiche également les données envoyées par le navigateur web sur l'écran.
Le programme est configuré pour utiliser le port 8080
e.g 127.0.0.1:8080
QttpServer = Qt + libuv + REPOS = votre serveur d'API
Pour un Qt API serveur qui doivent traiter un grand nombre de connexions simultanées, demande, et ce-avez-vous... nous avons le libuv bibliothèque.
Si libuv est construit pour NodeJS, nous les fans dans Qt-terre peuvent encore bénéficier de epolls et kqueues au lieu de la valeur par défaut sélectionner la méthode.
Voir plus sur github https://github.com/supamii/QttpServer
QhttpServer semble faire exactement ce dont vous avez besoin.
malheureusement, il ne semble pas être très active.
Ici est simple Qt serveur qui peut être utilisé à partir de QML, pur-JS HTTP: traitement: https://github.com/ncp1402/ql-server
Au-dessus de la simple serveur eu des problèmes en cours d'exécution sur MSwindows systèmes d'exploitation, comme il le ferait de blocage après un certain temps. Cela était dû à waitForReadyRead() fonctionnant dans un mode aléatoire sur MS systèmes. Le programme ci-dessous waitForReadyRead() a été remplacé par une boucle d'événement à l'aide de readyRead() du signal.