You can use the data-channel of WebRTC:
http://www.webrtc.org/
or you can set up a server and use WebSockets:
https://en.wikipedia.org/wiki/WebSocket
Drawbacks:
For WebRTC you will need a STUN server as I understood it, that will exchange the IP-addresses you use. For the rest the comminication is peer-to-peer.
It's currently scarce with examples on WebRTC as it is still in development. Only Chrome and Firefox (nightly) supports the protocol.
html5rocks has written a nice introduction on this (too much to paste in here):
http://www.html5rocks.com/en/tutorials/webrtc/basics/
For WebSockets you need a web server that function as a hub. This is however simple to set up as it uses the standard HTTP protocol. If you're on the .Net platform you can use for example SignalR which is easy to get up and running.
Note that for WebSocket it must initially be same-origin. This is however possible to circumvent (CORS). Typically the script using WebSockets is within the same web page and will communicate also with the same domain it was loaded from.
There are other options for WebSockets that use can use with node.js, socket.io, ruby and so forth.
UPDATE:
If you don't have a server peer-to-peer is gonna be difficult with plain html5. You will have to have something that negotiates the connections.
You can work around this by setting up a server locally on your computer and allow the other person to connect to that directly.
See for example this (free open-source TURN/STUN server):
http://code.google.com/p/rfc5766-turn-server/
Note: this server targets *NIX. I couldn't find a free solution for Windows if that's what you're using. There are commercial solutions as another option.