Забавно, как быстро все меняется с JavaScript, и тот факт, что принятый ответ (с 2010 года) говорит, что это невозможно: -)
В 2013 году да, есть способ установить прямую связь между браузером и браузером: WebRTC . Это часть HTML5, и она активно развивается. Он уже доступен, например, в стабильных выпусках Chrome и ночных сборках Firefox.
Браузер WebRTC предоставляет интерфейсы JavaScript для:
- MediaStreams: доступ к оборудованию хоста: камера, микрофон, динамик.
- ICE для прохождения NAT.
- PeerConnection: прямая связь между браузерами для потоковой передачи аудио / видео.
- DataChannel: прямая связь между браузерами для пользовательских данных.
См. сообщение в блоге для ознакомления (немного устаревшее, уже реализовано намного больше), это видео для очень хорошего обзора, W3C WebRTC JavaScript API и связанные RFC и интернет-проекты для сетевых протоколов.