Engine.IO
Transport-based cross-browser bi-directional communication layer
...In case the WebSocket connection is not possible, it will fall back to HTTP long-polling. And if the connection is lost, the client will automatically try to reconnect. Scale to multiple servers and send events to all connected clients with ease. Socket.IO is a library that enables real-time, bidirectional and event-based communication between the browser and the server. There are also several client implementation in other languages, which are maintained by the community. The client will try to establish a WebSocket connection if possible, and will fall back on HTTP long polling if not. ...