Content-Length: 189302 | pFad | http://developer.mozilla.org/fr/docs/Web/API/WebSockets_API

L'API WebSocket (WebSockets) - Les API Web | MDN

Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

L'API WebSocket (WebSockets)

Note : Cette fonctionnalité est disponible via les Web Workers.

L'API WebSocket permet d'ouvrir une session de communication interactive bidirectionnelle entre le navigateur de l'utilisateur·ice et un serveur. Avec cette API, vous pouvez envoyer des messages à un serveur et recevoir des réponses sans avoir à interroger périodiquement le serveur.

L'API WebSocket propose deux mécanismes alternatifs pour créer et utiliser des connexions web socket : l'interface WebSocket et l'interface WebSocketStream.

  • L'interface WebSocket est stable et bénéficie d'un bon support côté navigateurs et serveurs. Cependant, elle ne prend pas en charge la rétropression. En conséquence, lorsque des messages arrivent plus rapidement que l'application ne peut les traiter, cela peut soit remplir la mémoire de l'appareil en stockant ces messages en mémoire tampon, soit rendre l'application non réactive en raison d'une utilisation CPU à 100 %, soit les deux.
  • L'interface WebSocketStream est une alternative basée sur Promise à WebSocket. Elle utilise l'API Streams pour gérer la réception et l'envoi de messages, ce qui permet aux connexions de tirer automatiquement parti de la rétropression des flux en régulant la vitesse de lecture ou d'écriture afin d'éviter les goulets d'étranglement dans l'application. Toutefois, WebSocketStream n'est pas standard et n'est actuellement prise en charge que par un seul moteur de rendu.

Par ailleurs, l'API WebTransport devrait remplacer l'API WebSocket pour de nombreuses applications. WebTransport est une API bas niveau polyvalente qui fournit la rétropression et de nombreuses autres fonctionnalités non prises en charge ni par WebSocket ni par WebSocketStream, telles que les flux unidirectionnels, la livraison hors ordre et la transmission de données non fiable via des datagrammes. WebTransport est plus complexe à utiliser que WebSockets et son support inter-navigateurs est moins étendu, mais il permet la mise en œuvre de solutions sophistiquées. Si les connexions WebSocket standard conviennent à votre cas d'utilisation et que vous avez besoin d'une large compatibilité entre navigateurs, vous devriez utiliser l'API WebSocket pour démarrer rapidement. En revanche, si votre application nécessite une solution personnalisée non standard, vous devriez utiliser l'API WebTransport.

Note : Si une page possède une connexion WebSocket ouverte, le navigateur peut ne pas l'ajouter au bfcache. Il est donc recommandé de fermer la connexion lorsque l'utilisateur·ice a terminé avec la page. Voir Travailler avec le bfcache.

Interfaces

WebSocket

Interface principale pour se connecter à un serveur WebSocket, puis envoyer et recevoir des données sur la connexion.

WebSocketStream Non standard

Interface basée sur des promesses pour se connecter à un serveur WebSocket ; utilise l'API Streams pour envoyer et recevoir des données sur la connexion.

CloseEvent

Évènement envoyé par l'objet WebSocket lorsque la connexion se ferme.

MessageEvent

Évènement envoyé par l'objet WebSocket lorsqu'un message est reçu du serveur.

En-têtes HTTP associés

Les en-têtes HTTP sont utilisés dans la [poignée de main WebSocket](/fr/docs/Web/API/WebSocketsAPI/Writing_WebSocket_servers#la «_poignée_de_mains»_du_websocket) :

Sec-WebSocket-Key

Un en-tête de requête HTTP qui contient un nombre unique envoyé par le client. Il est utilisé dans la [poignée d'ouverture WebSocket](/fr/docs/Web/API/WebSocketsAPI/Writing_WebSocket_servers#la «_poignée_de_mains»_du_websocket) pour vérifier que le client a l'intention explicite d'ouvrir une connexion WebSocket. Il est ajouté automatiquement par le navigateur.

Sec-WebSocket-Accept

Un entête de réponse HTTP utilisé dans la poignée d'ouverture WebSocket pour indiquer que le serveur accepte de passer en WebSocket. La valeur de cette directive est calculée à partir de la valeur de Sec-WebSocket-Key dans la requête correspondante.

Sec-WebSocket-Version

Un en-tête HTTP qui, dans les requêtes, indique la version du protocole WebSocket comprise par le client. Dans les réponses, il n'est envoyé que si la version demandée n'est pas prise en charge par le serveur, et il liste les versions prises en charge par le serveur.

Sec-WebSocket-Protocol

Un en-tête HTTP qui, dans les requêtes, indique les sous-protocoles pris en charge par le client, par ordre de préférence. Dans les réponses, il indique le sous-protocole sélectionné par le serveur parmi les préférences du client.

Sec-WebSocket-Extensions

Un en-tête HTTP qui, dans les requêtes, indique les extensions WebSocket prises en charge par le client, par ordre de préférence. Dans les réponses, il indique l'extension sélectionnée par le serveur parmi les préférences du client.

Guides

Outils

Spécifications

Specification
WebSockets
# the-websocket-interface

Compatibilité des navigateurs

api.WebSocket

api.WebSocketStream

Voir aussi









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://developer.mozilla.org/fr/docs/Web/API/WebSockets_API

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy