Вы можете использовать данные-канал WebRTC:
http://www.webrtc.org/
или вы можете установить и настроить сервер и использовать WebSockets:
https://en.wikipedia.org/wiki/WebSocket
Недостатки:
Для WebRTC вам понадобится сервер STUN, как я понял, который будет обмениваться используемыми вами IP-адресами. В остальном измельчение одноранговое.
В настоящее время в WebRTC нет примеров, поскольку он все еще находится в разработке. Только протокол Chrome и Firefox (ночной) поддерживает протокол.
HTML5Rocks написал хорошее введение на это (слишком много, чтобы вставить сюда):
http://www.html5rocks.com/en/tutorials/webrtc/basics/
Для WebSockets вам нужен веб-сервер, функционировать в качестве концентратора. Это, однако, просто настроить, поскольку он использует стандартный протокол HTTP. Если вы находитесь на платформе .Net, вы можете использовать, например, SignalR, который легко встает и работает.
Обратите внимание, что для WebSocket он должен первоначально иметь одинаковое происхождение. Это, однако, возможно обойти (CORS). Обычно сценарий, использующий WebSockets, находится на одной и той же веб-странице и также связывается с тем же доменом, с которого он был загружен.
Другие варианты использования WebSockets, которые могут использоваться с node.js, socket.io, ruby и т. Д.
UPDATE:
Если вы не имеете одноранговая сеть сервер собирается быть трудным с простым html5. Вы должны будете иметь что-то, что ведет переговоры о соединениях.
Вы можете обойти это, настроив сервер локально на своем компьютере и разрешить другому человеку напрямую подключаться к нему.
Смотри, например, это (бесплатно с открытым исходным кодом TURN/сервер STUN):
http://code.google.com/p/rfc5766-turn-server/
Примечание: этот сервер цели * NIX. Я не мог найти бесплатное решение для Windows, если это то, что вы используете. В качестве другого варианта существуют коммерческие решения.
Значит ли он должен быть в режиме реального времени? – Marty
Да. Предполагая, что задействованы только Firefox и Chrome, вы можете использовать WebRTC для одноранговой связи в режиме реального времени между компьютерами. Это очень новый и экспериментальный на данный момент. Скорее всего, вам все равно нужен сервер, чтобы «вводить» их друг в друга. [Вот учебник, чтобы вы начали] (http://www.html5rocks.com/en/tutorials/webrtc/basics/) –
@BenjaminGruenbaum: Очень интересно. Я не знал об этом. Спасибо, что научили меня чему-то сегодня! –