2010-07-19 11 views
12

¿Hay alguna manera posible de que los navegadores se comuniquen entre sí a través de lan/wan sin el uso de un servidor (punto a punto directo)?¿Comunicación del navegador al navegador sin un servidor?

+0

Para todos aquellos que preguntaban por qué, me interesaba ver si había una solución para la transferencia de archivos simple/rápida en lan sin que el usuario descargara nada. –

Respuesta

5

Parece que hay esperanza en el horizonte: http://www.w3.org/TR/webrtc/

+0

Como un ejemplo: https://github.com/cowbell/sharedrop Esto usa HTML5 y WebRTC para transferir a través de LAN –

0

Respuesta corta: No. Imposible.

Respuesta larga: Puede escribir un applet Java firmado que implemente un servidor web en cada navegador. Entonces, el navegador "a" podría hablar con el applet del navegador "b" (¡no cierre esa pestaña!). Entonces tendría acceso limitado al otro estado del navegador de esta manera.

De manera similar, podría escribir un complemento/complemento que podría lograr gran parte de lo mismo.

La verdadera pregunta es ¿por qué querrías hacer esto? ¿Qué está tratando de lograr? Responda esa pregunta y podremos encontrar una solución.

0

Sí, podrían, pero tendrían que estar diseñados para establecer la conexión (o necesitarían tener un módulo que lo haga).

Aunque me pregunto por qué iban a necesitar ..

1

IIRC, Opera lanzado algún tipo de adición a su navegador que un servidor web embebido por esa misma funcionalidad:

http://unite.opera.com/

No estoy seguro de si realmente fue a algún lado, pero creo que es hora de que llegue.

+0

+1 interesante. Pero no hace una conexión directa, utiliza servidores de ópera para evitar las restricciones de NAT (realmente la única manera inteligente de hacer esto de todos modos) http://www.jorgemarsal.com/blog/2009/06/16/how- does-opera-une-file-sharing-service-work/ –

+0

Ah, ya veo. Supuse que estaba usando zeroconf/Bonjour para resolver clientes locales. Bueno, tal vez algún día en el futuro se haga con node.client.js + CouchDB o algo divertido como ese. – guns

1

¿En HTML/Javascript puro? Probablemente no.

Que yo sepa, no hay una buena forma en el JavaScript nativo para escuchar las conexiones. En HTTP, el cliente abre un puerto, envía una solicitud y recibe una respuesta. Puede usar el XHTTP o una clase similar para realizar una solicitud, pero no hay una buena manera dentro de una página web normal de crear un servidor en el otro extremo que escuche las solicitudes.

Dado que, sé que Flash proporciona una biblioteca de socket que le permite escuchar las conexiones. (Imagino que Silverlight hace esto también, aunque no lo he investigado). Si crearas un objeto usando cualquiera de estas tecnologías, podrías escuchar las solicitudes de conexión de cualquier cliente (suponiendo que no estás detrás de un firewall). o algún otro dispositivo de filtrado de conexión), mantenga un socket abierto y envíe lo que desee a través del cable.

Resumen:

  1. probablemente no puede hacer esto en JavaScript/HTML/CSS.

  2. PERO, podría sacarlo en Flash o Silverlight.

0

Flash - Stratus. Cosas nuevas en el último flash que proporciona conexiones P2P.

0

Si los navegadores están detrás de cortafuegos se puede buscar en el uso de NAT transversal. Protocolos como STUN y TURN son utilizados por WebRTC para hacer esto. Este sitio web tiene algunos buenos ejemplos/tutoriales HTML5 Rocks

0

Sí, puede probar http://httprelay.io con las llamadas AJAX. Es simple como eso:

* Send data: POST https://httprelay.io/link/your_secret_channel_id 
* Receive data GET https://httprelay.io/link/your_secret_channel_id 
Cuestiones relacionadas