2010-11-07 18 views
53

Para aclarar cuándo pregunto acerca de la comunicación del navegador al navegador quiero decir sin un servidor entre el mensaje de reenvío. Me gustaría implementar algo así para un juego. Si p2p en websockets no es posible, ¿hay alternativas similares? Cualquier ayuda es apreciada.¿Los websockets permiten la comunicación p2p (navegador a navegador)?

+0

http://socket.io –

+0

Sí, pero ningún navegador tiene una implementación en funcionamiento, y creo que ahora es parte de [API de transmisión]. (Http://www.whatwg.org/specs/web-apps)/current-work/multipage/commands.html # peer-to-peer-connections) – antimatter15

+5

El W3C ahora borra la especificación de [WebRTC] (http://www.w3.org/TR/webrtc/) hablando de conexiones punto a punto, entre otras cosas. –

Respuesta

42

No. Los navegadores solo pueden iniciar conexiones WebSockets, no recibirlas. El W3C browser API spec solo define cómo iniciar una conexión de salida.

Puede crear una aplicación que inicie y acepte conexiones WebSockets, pero los navegadores no lo hacen.

Puede consultar Pusher App que puede usar para crear una aplicación WebSockets con varios clientes. El servicio proporciona hasta 20 clientes WebSockets simultáneos de forma gratuita (puede pagar por una ampliación mayor).

actualización:

El protocolo WebRTC y API está progresando rápidamente y permite un canal de datos que se establece entre dos pares (puede que todavía necesite un servidor STUN/TURN para el NAT transversal y configuración inicial) .

+3

+1. Aunque no recomendaría aplicaciones de terceros. Mucho más fácil de construir el tuyo. –

+0

Pusher ahora proporciona 20 conexiones simultáneas y 100.000 mensajes por día gratis :) – Tieme

+0

Creo que debería actualizar su respuesta: https://labs.ericsson.com/developer-community/blog/beyond-html5-peer-peer- conversational-video –

27

en teoría es posible con WebRTC DataChannel:

RTCDataChannel es una API de WebRTC para alto rendimiento, baja latencia, comunicación peer-to-peer de datos arbritary. La API es simple-similar a WebSocket-pero la comunicación se produce directamente entre los navegadores , por lo que RTCDataChannel puede ser mucho más rápido que WebSocket incluso si se requiere un servidor de retransmisión (TURN) para hacer frente a los cortafuegos y NAT falla).

"En teoría", ya que no es compatible con un navegador estable y sin embargo, todavía se necesita un servidor de retransmisión (GIRO) si uno de los navegadores es detrás de un symmetric NAT. Sin embargo, es una característica realmente prometedora.

Actualización: 26 Chrome y Firefox 22 RTCDataChannel soporte por defecto y Firefox 19-21 si se habilita mediante el establecimiento de WebRTC media.peerconnection.enabled true (about: config).

6

Estaba leyendo sobre websocket y peer 2 peer y encontré PeerJS.

Todavía no he hecho nada, pero por los ejemplos parece prometedor.

+4

PeerJS es un contenedor sobre WebRTC. –

0

Hoy en día es posible, actualmente solo Chrome, FF y Opera lo admiten (computadora de escritorio).

Hay algunas bibliotecas que comienzan a aparecer en la web en este momento, como PeerJS y js-platform-p2p, lo que simplifica bastante las cosas.

0

La manera simple y confiable de cross browser compatible es usar http://httprelay.io con llamadas AJAX. También implementa comunicación uno a muchos lo que podría ser útil para el desarrollo del juego.

Cuestiones relacionadas