SockJS is a browser JavaScript library that provides a WebSocket-like object. SockJS gives you a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server. Under the hood SockJS tries to use native WebSockets first. If that fails it can use a variety of browser-specific transport protocols and presents them through WebSocket-like abstractions. SockJS is intended to work for all modern browsers and in environments which don't support the WebSocket protocol, for example, behind restrictive corporate proxies. SockJS-client does require a server counterpart, such as SockJS-node, which is a SockJS server for Node.js. The API should follow HTML5 Websockets API as closely as possible. All the transports must support cross domain connections out of the box. It's possible and recommended to host a SockJS server on a different server than your main web site.