- Ably FAQs
- Ably architecture, transports, and security
- Transports and connections
-
Account billing and packages
-
General
-
Realtime API and client libraries
-
Troubleshooting
-
Channels
-
REST API and client libraries
-
Ably error codes
-
Account and app setup and configuration
-
Ably architecture, transports, and security
-
Performance and Redundancy
-
Push Notifications
-
Integrations
-
Migrating to Ably from an existing service
Which transports are supported?
Caution: From v2 of the javascript library the behaviour described on this page has changed:
See the v2 migration guide links below
Our Javascript browser library will always choose the best transport available based on the browser and connection available. The client library prioritises transports in this order:
- WebSockets*
- XHR streaming
- XHR polling
- JSONP polling
When a browser client library first connects to Ably to establish a realtime connection:
- By default the library initiates connection using an HTTP-based transport. It chooses the best available of those supported by the browser, in descending order of priority: xhr streaming, xhr polling, jsonp polling.
- A WebSocket connection is then attempted, on those browsers that support it. When that connection succeeds, the library seamlessly migrates to the new connection.
*Popular browsers support WebSockets in full since the versions listed on caniuse.com/websockets