Existe-t-il un exemple de WebSockets pour Qt?Existe-t-il un exemple de WebSockets pour Qt?
Répondre
QWebView à l'intérieur de QtWebKit prend en charge l'utilisation de Web Sockets (à partir de la norme HTML5). Je les ai utilisés plusieurs fois sans problème.
Pouvez-vous éventuellement partager le code source pour nous les débutants a commencé? – BRampersad
Vous pouvez également regarder QtWebSockets. QtWebSockets peut être utilisé à la fois pour les applications client et serveur, et passe la suite de tests Autobahn.
J'ai créé un exemple. Voici le code:
inspection_server.hpp:
#ifndef __INSPECTION_SERVER_HPP__
#define __INSPECTION_SERVER_HPP__
#include <QWebSocketServer>
#include <QWebSocket>
#include <QObject>
#include <iostream>
#include <memory>
class InspectionServer;
typedef std::shared_ptr<QWebSocketServer> QWebSocketServerPtr;
typedef std::shared_ptr<QWebSocket> QWebSocketPtr;
typedef std::shared_ptr<InspectionServer> InspectionServerPtr;
class InspectionServer: public QObject
{
Q_OBJECT
QWebSocketServerPtr websocketServer;
QList<QWebSocketPtr> clients;
public:
InspectionServer(uint16_t port);
signals:
void closed();
private slots:
void onNewConnection();
void processTextMessage(const QString& message);
void socketDisconnected();
};
#endif
inspection_server.cpp:
#include "inspection_server.hpp"
#include <QDebug>
InspectionServer::InspectionServer(uint16_t port)
: websocketServer(new QWebSocketServer(QStringLiteral("Inspection server"), QWebSocketServer::NonSecureMode))
{
if(this->websocketServer->listen(QHostAddress::Any, port))
{
QObject::connect(websocketServer.get(), SIGNAL(newConnection()), this, SLOT(onNewConnection()));
}
else
{
throw std::runtime_error("InspectionServer: failed to listen");
}
}
void InspectionServer::onNewConnection()
{
qInfo() << "InspectionServer::onNewConnection";
QWebSocketPtr socket(this->websocketServer->nextPendingConnection());
QObject::connect(socket.get(), SIGNAL(textMessageReceived(const QString&)), this, SLOT(processTextMessage(const QString&)));
QObject::connect(socket.get(), SIGNAL(disconnected()), this, SLOT(socketDisconnected()));
this->clients.append(socket);
}
void InspectionServer::processTextMessage(const QString& message)
{
qInfo() << "InspectionServer::processTextMessage: " << message;
}
void InspectionServer::socketDisconnected()
{
qInfo() << "InspectionServer::socketDisconnected";
}
main.cpp:
#include "inspection_server.hpp"
#include <QCoreApplication>
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
InspectionServer server(1234);
return app.exec();
}
Et voici comment tester dans votre navigateur Web:
<html>
<body>
<button onClick="initWebSocket();">Connect</button>
<br>
<input type="text" id="messageInput">
<button onClick="sendMessage();">Send message</button>
</body>
</html>
<script type="text/javascript">
var websocket = null;
function initWebSocket()
{
websocket = new WebSocket("ws://localhost:1234");
}
function sendMessage()
{
websocket.send(document.getElementById("messageInput").value);
}
</script>
Ceci est un bon lien pour référence: http://code.qt.io/cgit/qt/qtwebsockets.git/tree/examples/websockets/echoserver
- 1. Qt Connexion au serveur WebSockets
- 2. Qt: Exemple simple pour Quazip
- 3. Qt par exemple l'apprentissage
- 4. Exemple Qt Dropsite
- 5. exemple qt du livre
- 6. notification Qt exemple d'erreur
- 7. Pourquoi cet exemple Mojolicious websockets ne fonctionne pas?
- 8. Qt et exemple de bibliothèque dynamique Code
- 9. avez-vous un exemple de py-poppler-qt?
- 10. Fleck WebSockets
- 11. Héritage multiple en C++ (exemple Qt)
- 12. Websockets HTML5
- 13. Un exemple d'utilisation de QInputMethodEvent?
- 14. Serveurs WebSockets
- 15. protocoles websockets?
- 16. Nodejs & websockets
- 17. Un exemple pour ResolveScriptReference?
- 18. Erlang et websockets
- 19. Alchemy-Websockets - WebSocketClient chemin
- 20. Websockets pour le traitement en arrière-plan
- 21. WebSockets projet protocole hixie 76 pour iOS
- 22. Comment créer un événement dans websockets php?
- 23. Bibliothèque client PHP Stomp pour ActiveMQ + WebSockets
- 24. WCF, SignalR ou websockets pour le webchat
- 25. jetty run error pour le projet websockets
- 26. Exemple de lecteur vidéo Qt phonon C++ ou python
- 27. VHosts Nginx Config pour Playframework Websockets
- 28. WebSockets binaires dans Flash
- 29. Printemps 4 WebSockets s'abonner à un sujet
@charles: s'il vous plaît ne pas retirer les étiquettes pertinentes si vous n'avez pas plus pertinent. En outre, nous avons perdu toutes les informations tagwiki maintenant. S'il vous plaît soyez plus prudent la prochaine fois. Qt et websockets signifient à peu près QtWebsockets ces jours-ci comme il est devenu une partie de Qt proprement dite. Même si ce n'était pas le cas, il y a une discussion méta sur le fait d'être OK pour ajouter des tags basés sur les réponses pertinentes. – lpapp
@FinalContest, les balises sont pour * questions *, pas de réponses. Ce n'est pas ** une question sur une bibliothèque spécifique mentionnée dans une réponse, c'est une question à propos de websockets dans Qt. – Charles
@FinalContest, je ne dis pas que la balise ne devrait pas exister, je dis qu'ayant ** cette ** question soit la ** seule ** une avec l'étiquette n'est pas appropriée. C'est une question de recommandation de bibliothèque de toute façon, et est donc hors sujet. Il y a [au moins un peu] (http://stackoverflow.com/search?q=qtwebsocket) d'autres questions sur lesquelles le tag pourrait et devrait probablement exister. Le montage s'est passé il y a si longtemps que je ne me souviens pas s'ils existaient à l'époque. – Charles