2010-07-19 2 views
12

Есть ли какой-либо возможный способ взаимодействия браузеров друг с другом через lan/wan без использования сервера (прямой одноранговой сети)?Браузер для взаимодействия с браузером без сервера?

+0

Для всех, кто спрашивает, почему, мне было интересно узнать, было ли решение для простого/быстрого переноса файлов через lan без загрузки пользователем каких-либо файлов. –

ответ

5

Похоже, там может быть надежда на горизонте: http://www.w3.org/TR/webrtc/

+0

В качестве примера: https://github.com/cowbell/sharedrop Это использует HTML5 и WebRTC для передачи по локальной сети –

0

Короткий ответ: Нет. Невозможно.

Длинный ответ: вы можете написать подписанный Java-апплет, который реализует веб-сервер в каждом браузере. Тогда браузер «a» мог бы поговорить с апплетом «b» браузера (не закрывайте эту вкладку!). Таким образом, у вас будет ограниченный доступ к состоянию браузера других пользователей.

Аналогичным образом вы можете написать плагин/аддон, который мог бы выполнить большую часть того же.

Реальный вопрос, почему вы хотите это сделать? Что вы пытаетесь достичь? Ответьте на этот вопрос, и мы сможем найти решение.

0

Да, они могли бы, но их нужно было бы спроектировать, чтобы установить соединение (или ему понадобится модуль, который это сделает).

Даже если мне интересно, зачем им нужно ..

1

IIRC, Opera выпустила своего рода дополнение к их браузера, встроенный веб-сервер только для этой функциональности:

http://unite.opera.com/

Не уверен, что это действительно пошло куда угодно, но я думаю, что придет время.

+0

+1 интересный. Но он не делает прямого подключения, он использует операционные серверы, чтобы обойти ограничения NAT (на самом деле это единственный умный способ сделать это) http://www.jorgemarsal.com/blog/2009/06/16/how- do-opera-unites-file-sharing-service-work/ –

+0

А, я вижу. Я предположил, что использует zeroconf/Bonjour для разрешения локальных клиентов. Ну, может быть, когда-нибудь в будущем это будет сделано с node.client.js + CouchDB или что-то забавное. – guns

1

В чистом виде HTML/Javascript? Возможно нет.

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

Учитывая, что я знаю, что Flash предоставляет библиотеку сокетов, которая позволяет слушать соединения. (Я полагаю, что Silverlight тоже это делает, хотя я не исследовал его.) Если бы вы создали объект с использованием любой из этих технологий, вы могли бы слушать запросы на соединение от любого клиента (при условии, что вы не находитесь за брандмауэром или другое устройство фильтрации подключений), поддерживать открытый разъем и отправлять все, что вы хотите по кабелю.

Резюме:

  1. Вероятно, не может сделать это в JavaScript/HTML/CSS.

  2. НО, вы можете снять его во Flash или Silverlight.

0

Вспышка - Stratus. Новые материалы в последней вспышке, которая обеспечивает соединения P2P.

0

Если браузеры позади брандмауэров вы можете посмотреть на использование NAT обхода. Протоколы, такие как STUN и TURN, используются WebRTC для этого. На этом веб-сайте есть несколько хороших примеров/учебников HTML5 Rocks

0

Да, вы можете попробовать http://httprelay.io с помощью вызовов AJAX. Это просто:

* Send data: POST https://httprelay.io/link/your_secret_channel_id 
* Receive data GET https://httprelay.io/link/your_secret_channel_id 
Смежные вопросы