Quels navigateurs prennent en charge l'API HTML5 WebSocket?

278

Je vais développer une application de messagerie instantanée qui s'exécute dans le navigateur.

Quels navigateurs prennent en charge l' API WebSocket ?

Sareuon
la source
2
Nous gardons une liste à jour des navigateurs prenant en charge WebSocket sur le site Web de notre projet Java WebSocket: jwebsocket.org/browsers.htm
Predrag Stojadinović
62
Nous devrions essayer de garder ces réponses à jour, non? Je suppose que c'est préférable à une nouvelle demande.
dreeves
5
Le meilleur site pour HTML5 et les fonctionnalités associées est caniuse.com
kanaka
5
Il y a un bon wiki communautaire sur les websockets HTML5: stackoverflow.com/questions/4262543/using-html-5-websockets
Wouter Dorgelo
1
@meagar - Je ne suis pas d'accord. Je pense qu'il devrait être protégé en tant que wiki pour empêcher de nouvelles réponses, mais conserver la réponse utile actuelle. Cette question a plus de 100 000 vues.
Travis J

Réponses:

428

Côté client

Tout navigateur avec Flash peut prendre en charge WebSocket en utilisant le shim / polyfill web-socket-js .

Voir caniuse pour l'état actuel de la prise en charge des WebSockets dans les navigateurs de bureau et mobiles.

Consultez les rapports de test de la suite de tests WS inclus dans Autobahn WebSockets pour les tests de conformité des fonctionnalités / protocoles.


Du côté serveur

Cela dépend de la langue que vous utilisez.

En Java / Java EE:

Quelques autres implémentations Java:

En C #:

En PHP:

En Python:

En C:

Dans Node.js:

  • Socket.io : Socket.io dispose également de ports côté serveur pour Python, Java, Google GO, Rack
  • sockjs : sockjs dispose également de ports côté serveur pour Python, Java, Erlang et Lua
  • WebSocket-Node - Implémentation Pure JavaScript Client & Server de HyBi-10.

Vert.x (également connu sous le nom de Node.x) : Un nœud comme l'implémentation polyglotte fonctionnant sur une machine virtuelle Java 7 et basé sur Netty avec:

  • Prise en charge de Ruby (JRuby), Java, Groovy, Javascript (Rhino / Nashorn), Scala, ...
  • Véritable filetage. (contrairement à Node.js)
  • Comprend plusieurs protocoles réseau prêts à l' emploi , y compris: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS comme solution de rechange pour WebSockets

Pusher.com est un service cloud Websocket accessible via une API REST.

La plate-forme cloud DotCloud prend en charge les Websockets et les langages de programmation Java (Jetty Servlet Container), NodeJS, Python, Ruby, PHP et Perl.

La plate-forme cloud Openshift prend en charge les Websockets et les plateformes Java (Jboss, Spring, Tomcat et Vertx), PHP (ZendServer & CodeIgniter), Ruby (ROR), Node.js, Python (Django & Flask).

Pour d'autres implémentations de langage, consultez l'article Wikipedia pour plus d'informations .

Le RFC pour les Websockets: RFC6455

Cbe317
la source
32
+1 pour le maintenir à jour. Opera prendra également en charge les Websockets dans la version 10.70.
Sasha Chedygov
À droite, je pense qu'ils ont renommé Opera 10.70 dans Opera 11 opera.com/browser/next
Cbe317
3
@Tony: IE9 ne prend pas en charge les WebSockets. Un support expérimental est disponible en tant que module complémentaire dans HTML5 Labs , mais il n'est pas livré et prêt.
Shog9
Webbit est un excellent serveur Java WebSocket qui devrait être ajouté à la liste.
Aslak Hellesøy
2
Dans Go-lang, les websockets sont dans la bibliothèque standard: go.net/websocket
naufraghi