If latency is not a big issue then you should probably just use one of the many good AJAX/long-poll libraries.
WebSockets will get you the lowest latency browser communication. WebSockets is actually fairly universally available because their is a WebSockets Flash emulator web-socket-js that can be automatically loaded if native WebSocket support is not found. Using web-socket-js emulation will have higher latency than native WebSockets but still lower than AJAX/long-poll.
In terms of WebSockets availability, native WebSockets (version 03) is 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 support in iOS natively since 4.2. I'm in the HyBi (WebSockets) working group and the next iteration of the protocol that addresses the security concerns from Mozilla and Opera is getting very close. Mozilla and Opera are actively working on implementations so I expect that at the latest the next major releases from them will have WebSockets turned on by default. But even so, the the Flash fallback and iOS support, WebSockets is available pretty much everywhere today.
If you are willing to do Javascript server-side too, then I would recommend Socket.IO. It is a node.js backend plus a client side JS library. It defaults to WebSockets if the browser supports it, includes the web-socket-js Flash fallback, and can use long-poll if the WebSockets connection doesn't work for some reason (or you choose to disable WebSockets as a transport).