If latency is not a big problem, you should probably just use one of the many good AJAX / long-poll libraries.
WebSockets will provide you with the lowest latency browser connection. WebSockets are actually quite universally available because their WebSockets Flash emulator is web-socket-js , which can be automatically loaded if no built-in WebSocket support is found. Using web-socket-js emulation will have a higher latency than native WebSockets, but still below AJAX / long-poll.
In terms of WebSockets availability, native WebSockets (version 03) are supported by Chrome and Safari. Version 03 is also supported by Firefox 4.0 and Opera 11, but is disabled by default. WebSockets is also supported on iOS since version 4.2. I work in the HyBi working group (WebSockets), and the next iteration of the protocol, which deals with security issues from Mozilla and Opera, is very close. Mozilla and Opera are actively working on the implementation, so I expect that at least the next major releases from them will include WebSockets by default. But even in this case, support for Flash backback and iOS, WebSockets is now available almost everywhere.
If you want to use a Javascript server too, I would recommend Socket.IO . This is the backend node.js plus the client JS library. By default, WebSockets, if the browser supports it, includes the web-socket-js Flash flash reserve and can use a long poll if the WebSockets connection does not work for any reason (or you decide to disable WebSockets as a transport).
source share