W3cubDocs

/DOM

WebSockets API

WebSockets is an advanced technology that makes it possible to open an interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply.

Interfaces

WebSocket
The primary interface for connecting to a WebSocket server and then sending and receiving data on the connection.
CloseEvent
The event sent by the WebSocket object when the connection closes.
MessageEvent
The event sent by the WebSocket object when a message is received from the server.

Tools

  • µWebSockets: Highly scalable WebSocket server and client implementation for C++11 and Node.js.
  • Socket.IO: A long polling/WebSocket based third party transfer protocol for Node.js.
  • WebSocket-Node: A WebSocket server API implementation for Node.js.
  • Total.js: Web application framework for Node.js (Example: WebSocket chat)
  • Faye: A WebSocket (two-ways connections) and EventSource (one-way connections) for Node.js Server and Client.
  • SignalR: SignalR will use WebSockets under the covers when it's available, and gracefully fallback to other techniques and technologies when it isn't, while your application code stays the same.
  • Caddy: A web server capable of proxying arbitraty commands (stdin/stdout) as a websocket.

See also

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Version -76 support 6 4.0 (2.0) No support 11.00 (disabled) 5.0.1
Protocol version 7 support No support 6.0 (6.0)
Moz
No support No support No support
Protocol version 10 support 14 7.0 (7.0)
Moz
HTML5 Labs ? ?
Standard - RFC 6455 Support 16 11.0 (11.0) 10 12.10 6.0
Usable in Workers (Yes) 37.0 (37.0) ? ? ?
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Version -76 support ? ? ? ? ?
Protocol version 7 support ? ? ? ? ?
Protocol version 8 support (IETF draft 10) ? 7.0 (7.0) ? ? ?
Standard - RFC 6455 Support 4.4 11.0 (11.0) ? 12.10 6.0
Usable in Workers (Yes) 37.0 (37.0) ? ? ?

Gecko notes

WebSockets support in Firefox is continuing to track the evolving WebSocket specification. Firefox 6 implements version 7 of the underlying protocol, while Firefox 7 implements version 8 (as specified by IETF draft 10). Firefox mobile received WebSocket support in Firefox mobile 7.0.

Gecko 6.0

Prior to Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), there was, incorrectly, a WebSocket object that some sites were thinking implied that WebSocket services were not prefixed; this object has been renamed to MozWebSocket.

Gecko 7.0

Starting in Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4), the network.websocket.max-connections preference is used to determine the maximum number of WebSocket connections that can be open at a time. The default value is 200.

Gecko 8.0

Starting in Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), the deflate-stream extension to the WebSocket protocol has been disabled, since it's been deprecated from the specification drafts. This resolves incompatibilities with some sites.

Gecko 11.0

Prior to Gecko 11.0, both incoming and outgoing messages were limited to 16 MB in size. They may now be up to 2 GB in size. Note, however, that memory limitations (especially on mobile devices) make that a theoretical maximum, not a practical one. In reality, transfers of that size will fail on devices that don't have enough memory.

Additionally, ArrayBuffer send and receive support for binary data has been implemented.

Starting in Gecko 11.0, the WebSocket API is no longer prefixed.

© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API