Есть ли способ подключить 2 браузера без сервера?Может быть с Websockets? - PullRequest
1 голос
/ 15 сентября 2010

Я ищу способ подключения одного браузера к другому без необходимости задержки в сети из-за наличия сервера между ними.

Не похоже, что HTML5 WebSockets будет работать, потому что я не смог найти способ прослушивать соединения в Javascript, только установить соединение.

Кто-нибудь знает, как это сделать? (Подключите 2 браузера напрямую? Например, через IP-адрес двух компьютеров)

Ответы [ 3 ]

4 голосов
/ 20 марта 2013

Забавно, как быстро все меняется с JavaScript, и тот факт, что принятый ответ (с 2010 года) говорит, что это невозможно: -)

В 2013 году да, есть способ установить прямую связь между браузером и браузером: WebRTC . Это часть HTML5, и она активно развивается. Он уже доступен, например, в стабильных выпусках Chrome и ночных сборках Firefox.

Браузер WebRTC предоставляет интерфейсы JavaScript для:

  • MediaStreams: доступ к оборудованию хоста: камера, микрофон, динамик.
  • ICE для прохождения NAT.
  • PeerConnection: прямая связь между браузерами для потоковой передачи аудио / видео.
  • DataChannel: прямая связь между браузерами для пользовательских данных.

См. сообщение в блоге для ознакомления (немного устаревшее, уже реализовано намного больше), это видео для очень хорошего обзора, W3C WebRTC JavaScript API и связанные RFC и интернет-проекты для сетевых протоколов.

1 голос
/ 26 апреля 2011

Это не идеальное решение, но это способ для вас транслировать напрямую от клиента ко всем другим клиентам на канале.NB: он использует Pusher, который является сервисом Freemium, который я считаю удивительным и надежным.Если они нашли способ сделать это, то должен быть способ.Их исходный код также доступен на GitHub.

http://pusher.com/docs/client_events

С их сайта:

Не весь трафик должен проходить через ваш обычный веб-сервер при использовании Pusher,Некоторые тривиальные действия, которые не нуждаются в постоянстве, могут передаваться напрямую через сокет всем остальным клиентам, подключенным к каналу.

Надеюсь, это поможет.

1 голос
/ 15 сентября 2010

Нет, это просто невозможно с JavaScript.

Вам потребуется клиент, написанный на языке, который имеет доступ к сетевому API операционной системы.

...