Engine.IO
Transport-based cross-browser bi-directional communication layer
...The client will try to establish a WebSocket connection if possible, and will fall back on HTTP long polling if not. WebSocket is a communication protocol which provides a full-duplex and low-latency channel between the server and the browser.