Some browsers and networks still cause problems when using WebSockets, hence pusher-js provides fallback mechanisms allowing realtime connectivity in almost any circumstances.
∞ Connection strategy
We wrote an extensive series of blog posts about the strategy pusher-js uses to establish a connection, which covers problems with WebSockets, pusher-js strategy implementation, metric collection, and prioritizing WebSocket transport during reconnect.
∞ SockJS compatibility
Most browsers have a limit of 6 simultaneous connections to a single domain, but Internet Explorer 6 and 7 have a limit of just 2. This means that you can only use a single Channels connection in these browsers, because SockJS requires an HTTP connection for incoming data and another one for sending. Opening the second connection will break the first one as the client won’t be able to respond to ping messages and get disconnected eventually.
All other browsers work fine with two or three connections.