Realtime Messaging supported transports

  • Dec 02, 2013
  • Starting Guide

Whenever it’s possible the Realtime Cloud Messaging JavaScript SDK uses the HTML5 WebSocket protocol (RFC 6455) as transport, delivering a low latency, full duplex, cross-domain communication channel between the browser and the Realtime server. When the WebSocket transport is not available the SDK can use a variety of browser-specific transport protocols (aka fallbacks) and presents them through WebSocket-like abstractions.

NOTE: There’s no Flash inside (no need to wait for 3 seconds in order to detect problems)

Realtime Cloud Messaging is intended to work for all modern browsers and in environments which don't support WebSocket protocol, for example behind restrictive corporate proxies.

List of all supported transports by browser

Browser Main transport
IE 6, 7 jsonp-polling
IE 8, 9 xdr-streaming *
IE 10+ WebSockets
Chrome 6+ WebSockets
Firefox <10 xhr-streaming
Firefox 10+ WebSockets (rfc6455)
Safari 5+ WebSockets

* IE 8+ supports XDomainRequest, which is esentially a modified AJAX/XHR that can do requests across domains.


List of available transports by name

Transport References
websocket (rfc6455) rfc 6455
websocket (hixie-76) draft-hixie-thewebsocketprotocol-76
websocket (hybi-10) draft-ietf-hybi-thewebsocketprotocol-10
xhr-streaming Transport using Cross domain XHR streaming capability (readyState=3).
xdr-streaming Transport using XDomainRequest streaming capability (readyState=3).
iframe-eventsource EventSource used from an iframe via postMessage.
iframe-htmlfile HtmlFile used from an iframe via postMessage.
xhr-polling Long-polling using cross domain XHR.
xdr-polling Long-polling using XDomainRequest.
iframe-xhr-polling Long-polling using normal AJAX from an iframe via postMessage.
jsonp-polling Slow and old fashioned JSONP polling. This transport will show "busy indicator" (aka: "spinning wheel") when sending data.

Back to Announcement channels - Next: Regional clusters

If you find this interesting please share: