javascript - example - websocket nodejs
¿Los websockets permiten la comunicación p2p(navegador a navegador)? (5)
Ahora 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 que simplifican bastante las cosas.
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.
En teoría, es posible con WebRTC DataChannel :
RTCDataChannel es una API de WebRTC para la comunicación peer-to-peer de alto rendimiento y baja latencia de datos. La API es simple, similar a WebSocket, pero la comunicación ocurre 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) (cuando falla la perforación para hacer frente a los firewalls y NAT).
"En teoría" porque todavía no es compatible con un navegador estable y aún necesita un servidor de retransmisión (TURN) si uno de los navegadores está detrás de un NAT simétrico . Sin embargo, es una característica realmente prometedora.
Actualización: Chrome 26 y Firefox 22 son compatibles con RTCDataChannel de forma predeterminada y Firefox 19-21 si habilita WebRTC configurando media.peerconnection.enabled
en true (about: config).
Estaba leyendo sobre websocket y peer 2 peer y encontré PeerJS .
Todavía no he hecho nada, pero por los ejemplos parece prometedor.
No. Los navegadores solo pueden iniciar conexiones WebSockets, no recibirlas. La especificación API del navegador W3C solo define cómo iniciar una conexión de salida.
Puede crear una aplicación que inicie y acepte conexiones de WebSockets, pero los navegadores no lo hacen.
Puede consultar la aplicación Pusher, 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 la API están progresando rápidamente y permiten que se establezca un canal de datos entre dos pares (aún puede necesitar un servidor STUN / TURN para el recorrido y la configuración NAT inicial).
Una forma simple y confiable de cross browser es utilizar 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.