Sur cette page

Qt WebSockets Présentation

Qt WebSockets vous permet de développer des applications compatibles avec WebSocket. Il fournit une implémentation du protocole WebSocket, proposé par l’IETF (Internet Engineering Task Force) comme une meilleure alternative pour la communication bidirectionnelle utilisant l’infrastructure Web existante.

Historiquement, les applications web nécessitant une communication bidirectionnelle ou des notifications push devaient recourir à l’une des solutions basées sur HTTP disponibles. Ces solutions utilisaient différentes techniques, telles que le polling, le long-polling et le streaming, pour pallier les limites du protocole HTTP, qui n’est pas conçu pour de tels cas d’utilisation. Il en résultait une latence réseau élevée, des échanges de données superflus et des données obsolètes ou périmées. La solution WebSocket proposée par l’IETF permet de surmonter ces problèmes dans une large mesure.

Comment cela fonctionne-t-il ?

Schéma de fonctionnement du protocole WebSocket

Comme vous pouvez le voir sur l’illustration, une solution basée sur WebSocket comprend un volet client et un volet serveur. La prise en charge native de WebSocket côté client est disponible sur la plupart des navigateurs Web courants, tels que Google Chrome, Internet Explorer, Safari, etc. La prise en charge côté serveur de WebSocket en fait une solution complète, permettant une communication bidirectionnelle. Tout navigateur prenant en charge WebSocket de manière native devrait vous permettre d’exécuter une application client simple basée sur HTML et JavaScript à l’aide de l’API WebSocket HTML5.

Une connexion WebSocket commence par une poignée de main initiale compatible HTTP, ce qui garantit la rétrocompatibilité et permet aux connexions WebSocket de partager les ports HTTP (80) et HTTPS (443) par défaut. Une fois la poignée de main réussie, la connexion est ouverte pour l'échange de données, jusqu'à ce que l'une des deux entités y mette fin.

Le protocole WebSocket utilise les schémas d’URL ws: et wss: pour représenter respectivement les requêtes WebSocket non sécurisées et sécurisées. Lors de l’établissement initial de la connexion, si un serveur proxy est détecté, le protocole tente de mettre en place un tunnel en envoyant une requête « HTTP CONNECT » au proxy. L’approche par tunnel pour gérer les proxys est utilisée quel que soit le type de requête, bien qu’il soit prouvé qu’elle fonctionne mieux avec le protocole TLS (Transport Layer Security) dans le cadre de connexions sécurisées.

Cas d’utilisation typiques

WebSocket est particulièrement adapté aux scénarios dans lesquels

  • les données présentées doivent être à jour,
  • une faible latence réseau et un échange de données minimal sont essentiels.

Voici quelques exemples d’applications pour lesquelles il est difficile d’atteindre ces objectifs avec l’approche traditionnelle : la messagerie instantanée, les jeux en ligne, le trading boursier en ligne, etc.

Rôle du Qt WebSockets

Le module « Qt WebSockets » fournit des API permettant de développer des applications serveur et client basées sur WebSocket. Ces API peuvent notamment être utilisées pour une application serveur fournissant des données boursières et une application client s'inscrivant à des notifications push en cas de variation du cours de certaines actions.

Le module propose des versions de l’API à la fois en C++ et en QML, ce qui vous permet de choisir l’option la mieux adaptée à vos besoins.

Qt WebSockets avec les services cloud

L’application cliente dépend généralement d’un service externe pour ses données. La plupart de ces fournisseurs de services ne prennent pas encore en charge WebSocket ; vous devez donc développer une application serveur compatible WebSocket pour combler cette lacune. Vous pouvez exécuter le serveur sur un service de passerelle WebSocket d’entreprise, tel qu’un service cloud, ce qui vous évite d’avoir à gérer l’infrastructure nécessaire à l’hébergement d’un tel service.

La plupart des services cloud fournissent un backend de type « Platform as a Service » (PaaS), ce qui permet de déployer et d’exécuter une instance de votre application serveur sur le cloud. Les applications clientes peuvent se connecter au serveur en cours d’exécution à l’aide d’une URL WebSocket et recevoir des données.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.