2010-10-05 14 views
5

He estado pensando en crear un programa de cliente a cliente. Pero la forma en que quiero es usar la herramienta para hacerlo, ayudado por un servidor que puede hacer esa conexión.¿Cómo puedo hacer una conexión de socket de cliente a cliente (navegadores)?

Los problemas se producen cuando necesito tener un socket no conectado (o pasivo) en un cliente, esperando una conexión.

He estado pensando en WebSockets Html5, pero no le da al cliente la posibilidad de tener un socket pasivo sin conectarlo con un protocolo TCP.

Estoy aprendiendo esto y tratando de encontrar la manera de hacerlo. Todas las ideas son bienvenidas: D.

Respuesta

4

Puede tener un socket pasivo en los applets de Java, Flash y otros complementos del navegador, pero en general eso puede ser problemático para las aplicaciones web públicas.

En primer lugar, será difícil atravesar firewalls, etc., y necesitará depender y escribir código para un complemento de navegador que implemente una API de socket, y vincularla a JavaScript. Si usted está interesado en algunas soluciones, es posible que desee echa un vistazo a la siguiente mensaje de desbordamiento de pila:

El enfoque tradicional para comunicaciones peer-to-peer entre los navegadores es tener su servidor actuando como una puerta de enlace para todas las conexiones. Los navegadores inician la conexión (ya sea con WebSockets o con XMLHttpRequest) y mantienen una conexión activa con el servidor en todo momento, restableciéndolo si se cae. Dado que la aplicación del servidor siempre encontrará una conexión TCP abierta con todos los navegadores conectados, puede enrutar fácilmente los mensajes a/desde todos los clientes.

+0

thx por la respuesta, de todos modos lo que yo quería no era usar complementos. Pero dime lo que pienso, no hay una buena manera sin un puente plugin browswer. – Angelus

0

Como dice Daniel, va a ser muy difícil tratar de hacer verdadero peer-to-peer (a la Skype, etc.) en el navegador, y ciertamente no es posible sin el uso de complementos. E incluso Skype, etc. confían en recurrir a un servidor que actúa como puerta de enlace cuando no se puede establecer una conexión directa (debido a cortafuegos, etc.).

Así que realmente necesita tener un servidor de puerta de enlace independientemente, y que hay una serie de opciones. Intenta buscar aquí "cometa". Algunas de las opciones con las que he jugado incluyen Orbited (http://orbited.org/) y Hookbox (http://hookbox.org/), pero hay muchas más.

Cuestiones relacionadas