WebSockets

WebSocket est une technologie évoluée qui permet d'ouvrir un canal de communication bidirectionnelle entre un navigateur (côté client) et un serveur. Avec cette API vous pouvez envoyer des messages à un serveur et recevoir ses réponses de manière événementielle sans avoir à aller consulter le serveur pour obtenir une réponse.

Note:  Bien que les connexions WebSocket soient fonctionnellement similaires aux sockets standard de type Unix, elles ne sont pas liées.

Interfaces  

WebSocket
Interface principale pour se connecter à un serveur WebSocket. Il permet d'envoyer et de recevoir des données sur la connexion.
CloseEvent
Evénement envoyé par l'objet WebSocket lors de la fermeture de la connexion.
MessageEvent
Evénement envoyé par l'objet WebSocket lorsqu'un message est reçu par le serveur.

 

Outils

  •  HumbleNet :Bibliothèque de réseau multiplateforme qui fonctionne dans un navigateur. Il s'agit bibliothèque écrite en C qui enveloppe WebSockets et WebRTC. Elle gomme toutes les différences qui existent entre les navigateurs et les logiciels, ce qui facilite la création d'une fonctionnalité de réseau multi-joueurs pour les jeux, par exemple,  et autres applications.
  • µWebSockets: Déclinaison plus légère et plus performante de WebSocket et écrite en C++11 et en Node.js.
  • ClusteWS: Framework léger, rapide et puissant qui permet de construire des application en Node.js.
  • Socket.IO: API WebSocket puissante et multiplateformes en Node.js.
  • SocketCluster: Framework open source en temps réel en Node.js. Il prend en charge à la fois la communication directe client-serveur et la communication de groupe via les pub/sub canaux. Il est conçu pour s'adapter facilement à n'importe quel nombre de processus/hôtes et est idéal pour construire de chat de discution.
  • WebSocket-Node: API WebSocket coté serveur en Node.js.
  • Total.js: FrameWork pour web application en Node.js.
  • Faye: Combine WebSocket(bidirectionnelle) et EventSource(unidirectionnelle) , côté serveur et côté client en Node.js.
  • SignalR: SignalR est une nouvelle bibliothèque pour les développeurs ASP.NET. Elle simplifie l'ajout des WebSockets dans les applications. SignalR utilise les canaux  de WebSockets lorsqu'elles sont disponibles,  dans le cas contraire elle utilise d'autres technos, sans modifier votre application.
  • Caddy: Serveur web capable de créer des WebSockets serveur/proxy(stdin/stdout, echo, cat, ...).
  • ws: La plus populaire des WebSokcket pour client & serveur en Node.js.
  • jsonrpc-bidirectional: Asynchronous RPC which, on a single connection, may have functions exported on the server and, and the same time, on the client (client may call server, server may also call client).
  • cowboy: Cowboy est un petit serveur HTTP rapide et moderne pour Erlang/OTP basé sur WebSocket.

Ressources liées

Voir aussi

Compatibilité des navigateurs

Nous convertissons les données de compatibilité dans un format JSON. Ce tableau de compatibilité utilise encore l'ancien format car nous n'avons pas encore converti les données qu'il contient. Vous pouvez nous aider en contribuant !

Caractéristiques

Chrome

Firefox (Gecko)

Internet Explorer

Opera

Safari

Support de la version -76

6

4.0 (2.0)

Pas de support

11.00 (désactivé)

5.0.1

Support de la version du protocole 7

Pas de support

6.0 (6.0)
Moz

Pas de support

Pas de support

Pas de support

Support de la version du Protocole 10

14

7.0 (7.0)
Moz

HTML5 Labs

?

?

Standard - RFC 6455 Support

16

11.0 (11.0)

10

12.10

6.0

Caractéristiques

Android

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Support de la version -76

?

?

?

?

?

Support de la version du protocole 7

?

?

?

?

?

Support de la version du protocole 8 (IETF draft 10)

?

7.0 (7.0)

?

?

?

Support du Standard - RFC 6455

16 (Chrome)

11.0 (11.0)

?

12.10

6.0

Notes pour Gecko

Le support des WebSockets dans Firefox suit les évolutions continuelles de la spécification WebSocket. Firefox 6 met en œuvre la version 7 du protocole sous-jacent, tandis que Firefox 7 mets en œuvre la version 8 (comme spécifié dans le draft 10 de l'IETF). Firefox mobile supporte WebSocket à partir de la version Firefox mobile 7.0.

Gecko 6.0

Avant Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), il y avait un objet WebSocket, mal nommé, qui a fait supposer à certains sites que les servicesWebSocket services n'étaient pas prefixés ; cet objet a été renommé en MozWebSocket.

Gecko 7.0

À partir de la version 7.0 de Gecko (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4), la préférence network.websocket.max-connections est utilisée pour déterminer le nombre maximum de connexions Websockets qui peuvent être ouvertes en même temps. La valeur par défaut est de 200.

Gecko 8.0

À partir de la version 8.0 de Gecko (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), l'extension "deflate-stream" du protocole WebSocket a été désactivée, car elle a été rendu obsolète dans les spécifications. Cela corrige des problèmes d'incompatibilité avec certains sites.

Gecko 11.0

Avant la version 11.0 de Gecko, la taille maximum des messages entrants et sortants était limitée à 16 Mo. Elle peut maintenant atteindre une taille de 2 Go. Ce maximum est pourtant plus théorique que pratique à cause des limitations de mémoire de certains appareils (principalement avec les appareils mobiles). En pratique, des transferts de cette taille maximum vont échouer sur les appareils qui n'ont pas assez de mémoire.

En outre, le support de l'envoi et la reception d'ArrayBuffer pour les données binaires à été réalisé.

A partir de la veriosn 11.0 de Gecko 11.0, l'API WebSocket n'est plus préfixée.

Attention: WebSocket a été désactivé dans les versions 4 et 5 de Firefox, principalement en raison de la découverte d'un problème de sécurité dans la conception du protocole. Cela a été corrigé dans la version 6 de Firefox qui met en œuvre une nouvelle version du protocole.