websockets socket servidor funciona ejemplo crear como javascript ajax text p2p

javascript - servidor - websocket php



¿Cómo puedo implementar un simple navegador p2p sin servidor para la mensajería del navegador con una sobrecarga mínima? (2)

Estoy tratando de crear algunas implementaciones básicas de juegos simples (tic tac toe es el proyecto inicial) que se pueden jugar en Internet sin necesidad de un servidor central. La página ni siquiera tendría que estar alojada y podría ejecutarse localmente en la máquina, o podría estar alojada en un servidor web. Cuando se hospeda el juego, la página informará al anfitrión de su dirección IP, que luego podría enviarse por cualquier método (teléfono, mensaje instantáneo, etc.) a un amigo. Ese amigo escribiría o copiaría y pegaría la IP en un cuadro de diálogo de combinación y sería capaz de jugar el juego en cuestión. Me gustaría que estas dos partes pudieran hacer esto sin instalar ningún software adicional y sin contactar a un servidor central de ningún tipo.

He analizado muchas soluciones potenciales que incluyen node.js, webrtc, websockets, flash, java, etc. Cada uno de estos tiene un problema asociado, como requerir un servidor central o requerir que el cliente tenga que descargar algo. eso aún no está instalado en su computadora, o solo está transfiriendo audio y video y no es útil para enviar mensajes de datos. Puede parecer trivial decirle a alguien que necesita descargar java ... o que yo desarrolle la aplicación con flash, pero eso es todo lo contrario a mis objetivos finales.

Si simplemente no es posible hacer lo que estoy tratando de hacer completamente en javascript, entonces simplemente no es posible. Pero no veo por qué no podría ser, teniendo en cuenta que los navegadores son capaces por sí mismos de enviar y recibir datos de texto a URLS que se resuelven a IPs o directamente a IPs. Otras soluciones son bienvenidas, pero si esto no es posible, debería serlo.

La explicación simple de los requisitos exactos para lo que estoy tratando de hacer es:

  1. Debe utilizar tecnologías totalmente gratuitas (como en la cerveza). (no flash, me doy cuenta de que las aplicaciones web para flash player se pueden codificar de forma gratuita, pero de igual a igual en el estrato es necesario registrarse para obtener una clave beta, que suponiendo que pudiera obtener de forma gratuita, no sería necesariamente gratis para siempre).

  2. Sin servidores externos o falsos de igual a igual. (de nuevo, como en soluciones basadas en flash o unidad, donde se puede lograr la imitación de igual a igual, siempre y cuando se use su servidor central)

  3. No hay descargas de clientes (claro, la mayoría de las personas tienen java o flash instalado, pero muchas no, y java es una descarga bastante fuerte y no es amigable para los usuarios analfabetos de computadoras. Incluso intenta instalar barras de herramientas ahora. Además, muchos de ellos mis usuarios no estarían dispuestos a descargar nada en absoluto, incluido java o unity. Los cuales tienen sus propios problemas relacionados con este proyecto como ya se mencionó)

En resumen, si ajax puede enviar una solicitud a una IP específica y escuchar una respuesta ... ¿por qué no puedo obtener mensajes simples de igual a igual en js puro? O puedo?

No debería tener que alojar un servidor web completo o una aplicación o complemento separado de cualquier tipo para enviar y recibir datos.

¿Me estoy perdiendo de algo?


En resumen, si ajax puede enviar una solicitud a una IP específica y escuchar una respuesta ... ¿por qué no puedo obtener mensajes simples de igual a igual en js puro? O puedo?

Esto se debe al hecho de que una solicitud ajax debe ser manejada por un servidor HTTP, por lo que aún debe instalar un servidor para cada cliente.

di que quieres

  1. gratis
  2. no hay servidores externos
  3. sin descargas de clientes

Yo diría que es imposible archivar con todos estos requisitos, excepto que usted elimine uno de ellos.

Mi sugerencia es pubnub . Esta solución todavía necesita un servidor y no es gratuita (tienen un nivel de uso gratuito). Pero lo bueno es que tienes una conexión p2p imitada sin hacer cosas del servidor y no es necesario descargar el cliente.


Después de que me recomendaron el pubnub, miré allí y me impresionó parcialmente. Sin embargo, al final encontré exactamente lo que buscaba INCREÍBLEMENTE. RTCDataChannel es la respuesta. Este sitio finalmente mostró que lo que quiero es posible. El soporte del navegador para esta funcionalidad es pequeño pero está creciendo y toda la terrible experiencia ha fortalecido mi fe en el creciente apoyo para las aplicaciones de igual a igual en la comunidad del navegador.