Quali browser supportano l’API WebSocket HTML5?

Sto per sviluppare un’applicazione di messaggistica istantanea che viene eseguita nel browser.

Quali browser supportano l’ API WebSocket ?

Dalla parte del cliente

  • Hixie-75:
    • Chrome 4.0 + 5.0
    • Safari 5.0.0
  • HyBi-00 / Hixie-76:
    • Chrome 6.0 – 13.0
    • Safari 5.0.2 + 5.1
    • iOS 4.2 + iOS 5
    • Firefox 4.0 – supporto per WebSockets disabilitato . Per abilitarlo vedi qui .
    • Opera 11 – con supporto disabilitato . Per abilitarlo vedi qui .
  • HyBi-07 +:
    • Chrome 14.0
    • Firefox 6.0 – prefisso: MozWebSocket
    • IE 9 – tramite estensione Silverlight scaricabile
  • HyBi-10:
    • Chrome 14.0 + 15.0
    • Firefox 7.0 + 8.0 + 9.0 + 10.0 – prefisso: MozWebSocket
    • IE 10 (dall’anteprima dello sviluppatore di Windows 8)
  • HyBi-17 / RFC 6455
    • Chrome 16
    • Firefox 11
    • Opera 12.10 / Opera Mobile 12.1

Qualsiasi browser con Flash può supportare WebSocket utilizzando il web-socket-js shim / polyfill.

Vedi caniuse per lo stato corrente del supporto WebSockets nei browser desktop e mobili.

Consultare i report di test della suite di test WS inclusa in WebSockets di Autobahn per i test di conformità di funzionalità / protocollo.


Lato server

Dipende dal linguaggio che usi.

In Java / Java EE:

  • Jetty 7.0 supporta (molto facile da usare) V 7.5 supports RFC6455 – Jetty 9.1 supporta javax.websocket / JSR 356)
  • GlassFish 3.0 (livello molto basso e talvolta complesso), Glassfish 3.1 ha un nuovo supporto Websocket refactored che è più intuitivo per gli sviluppatori V 3.1.2 supports RFC6455
  • Caucho Resin 4.0.2 (non ancora provato) V 4.0.25 supports RFC6455
  • Tomcat 7.0.27 ora supporta V 7.0.28 supports RFC6455
  • Tomcat 8.x ha il supporto nativo per websockets RFC6455 ed è conforms a JSR 356
  • JSR 356 incluso in Java EE 7 definirà l’API Java per WebSocket, ma non è ancora stabile e completo . Vedi l’articolo di Arun GUPTA WebSocket e Java EE 7 – Preparativi per JSR 356 (TOTD n. 181) e presentazione QCon (dalle 00:37:36 alle 00:46:53) per ulteriori informazioni sullo stato di avanzamento. Puoi anche guardare Java websocket SDK .

Alcune altre implementazioni Java:

  • Kaazing Gateway
  • jWebscoket
  • Netty
  • xLightWeb
  • Webbit
  • Atmosfera
  • Grizzly
  • Apache ActiveMQ V 5.6 supports RFC6455
  • Apache Camel V 2.10 supports RFC6455
  • JBoss HornetQ

In C #:

  • XSockets.NET
  • SuperWebSocket
  • Pepita
  • Alchemy-WebSockets
  • macchiolina
  • SignalR

In PHP:

  • dente di arresto
  • phpwebsocket .
  • Extendible Web Socket Server
  • phpdaemon

In Python:

  • pywebsockets
  • websockify
  • gevent-websocket , gevent-socketio e socket-boccetta basati sul primo
  • autostrada tedesca
  • Tornado

In C:

  • libwebsockets

In Node.js:

  • Socket.io : Socket.io ha anche porte serveride per Python, Java, Google GO, Rack
  • sockjs : sockjs ha anche porte serveride per Python, Java, Erlang e Lua
  • WebSocket-Node : implementazione del client e server JavaScript puro di HyBi-10.

Vert.x (noto anche come Node.x) : un nodo come un’implementazione poliglotta in esecuzione su una JVM Java 7 e basata su Netty con:

  • Supporto per Ruby (JRuby), Java, Grovy, Javascript (Rhino / Nashorn), Scala, …
  • Vero threading (a differenza di Node.js)
  • Comprende più protocolli di rete, inclusi: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS come fallback per WebSockets

Pusher.com è un servizio cloud Websocket accessibile tramite un’API REST.

La piattaforma cloud DotCloud supporta Websockets e Java (Jetty Servlet Container), NodeJS, Python, Ruby, PHP e linguaggi di programmazione Perl.

La piattaforma cloud Openshift supporta websockets e Java (Jboss, Spring, Tomcat & Vertx), PHP (ZendServer e CodeIgniter), Ruby (ROR), Node.js, Python (Django & Flask).

Per altre implementazioni linguistiche, consultare l’articolo di Wikipedia per ulteriori informazioni .

RFC per Websockets: RFC6455