Sur cette page

Qt WebSockets Vue d'ensemble

Qt WebSockets Le protocole WebSocket vous permet de créer des applications compatibles avec le protocole WebSocket. Il fournit une implémentation du protocole WebSocket, qui est proposé par l'IETF (Internet Engineering Task Force) comme une meilleure alternative pour la communication bidirectionnelle en utilisant l'infrastructure web existante.

Historiquement, les applications web qui avaient besoin d'une communication bidirectionnelle ou de notifications push devaient utiliser l'une des solutions HTTP disponibles. Ces solutions utilisaient différentes techniques telles que le polling, le long-polling et le streaming, pour surmonter les limites du protocole HTTP, qui n'est pas conçu pour de tels cas d'utilisation. Il en résultait une latence élevée du réseau, des échanges de données inutiles et des données périmées ou anciennes. 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 du protocole WebSocket

Comme vous pouvez le voir dans la représentation graphique, la solution basée sur WebSocket se compose d'un côté client et d'un côté serveur. La prise en charge native de WebSocket côté client est disponible sur la plupart des navigateurs web populaires tels que Google Chrome, Internet Explorer, Safari, etc. La prise en charge de WebSocket côté serveur en fait une solution complète, permettant une communication bidirectionnelle. Tout navigateur prenant en charge WebSocket en mode natif devrait vous permettre d'exécuter une application client simple basée sur HTML et JavaScript à l'aide de l'API HTML5 WebSocket.

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

Le protocole WebSocket utilise les schémas d'URL ws: et wss: pour représenter les demandes WebSocket non sécurisées et sécurisées, respectivement. Au cours de l'échange initial, si un serveur proxy est détecté, le protocole tente d'établir un tunnel en envoyant une déclaration HTTP CONNECT au proxy. L'approche du tunnel pour gérer les serveurs mandataires est utilisée quel que soit le type de demande, bien qu'il soit prouvé qu'elle fonctionne mieux avec TLS (Transport Layer Security) dans les connexions sécurisées.

Cas d'utilisation typiques

WebSocket convient le mieux aux scénarios dans lesquels

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

Quelques exemples d'applications pour lesquelles il est difficile d'atteindre ces objectifs avec l'approche traditionnelle sont la messagerie instantanée, les jeux en ligne, les transactions boursières en ligne, etc.

Rôle de Qt WebSockets

Le module Qt WebSockets fournit des API pour développer des applications serveur et client basées sur WebSocket. Un exemple d'utilisation de ces API est une application serveur qui fournit des données boursières et une application client qui s'enregistre pour recevoir une notification push en cas de changement de prix de quelques actions.

Le module fournit des versions C++ et QML de l'API, de sorte que vous pouvez choisir l'alternative qui répond à vos besoins.

Qt WebSockets avec les services en nuage

L'application cliente dépend généralement d'un service externe pour l'obtention de données. La plupart de ces fournisseurs de services ne prenant pas encore en charge WebSocket, vous devez développer une application serveur compatible avec WebSocket pour combler le fossé. Vous pouvez exécuter le serveur sur un service de passerelle WebSocket d'entreprise, tel qu'un service en nuage, ce qui vous évite d'avoir à maintenir l'infrastructure nécessaire à l'hébergement d'un tel service.

La plupart des services en nuage fournissent une plate-forme en tant que service (PaaS), qui permet de déployer et d'exécuter une instance de votre application serveur sur le nuage. 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.