2012-05-17 18 views
5

Estoy tratando de encontrar la forma de que los usuarios de un sitio web (por ejemplo, un alumno y un profesor) compartan una conexión segura en la que ambos vean las actualizaciones en tiempo real en una página. De la investigación he llegado a la conclusión de que algunas de las actualizaciones en tiempo real podrían realizarse utilizando ajax y javascript.¿Cómo compartir actualizaciones en tiempo real en un sitio web entre usuarios en diferentes computadoras?

Pero no estoy seguro de cómo los usuarios podrían compartir una conexión donde solo los dos usuarios estarían viendo las actualizaciones que tienen lugar en el sitio web (como animaciones flash de un tablero de dibujo). También estoy confundido cómo incluso comenzarías a establecer una conexión como esta.

He buscado sesiones y cookies de intp php, pero no estoy seguro de estar haciendo la investigación correcta. Cualquier sugerencia sobre cómo dos usuarios específicos podrían compartir una conexión segura en la que solo los dos ven las actualizaciones en tiempo real. No quiero una respuesta concisa por favor. Estoy buscando detalles específicos como funciones y sintaxis específica de php. Aprecio la ayuda y te calificare si me das buenas respuestas!

+0

¿Está buscando algo así como Google Docs, donde los usuarios pueden ver en vivo los cambios realizados por otros? ¿O alguna aplicación de pantalla compartida? Tendrás que ser más específico sobre lo que quieres lograr ... –

Respuesta

0

Puede consultar las técnicas de empuje ajax. Utilicé cometa una vez en la que un administrador publicó mensajes y todos los que iniciaron sesión vieron ese mensaje en su pantalla. No sé si cometa es compatible con PHP. Solo lo usé con JSP. Simplemente busque "empujar ajax" en Google.

2

No puede compartir una conexión segura (por ejemplo, HTTPS) de un cliente a un servidor.

Si ambos clientes han iniciado sesión y tienen una tarea AJAX de fondo ejecutándose en el navegador, ¿es aceptable que cada cliente "extraiga" cada pocos segundos los mismos datos para mostrar para ambos usuarios?

Esto requeriría que las actualizaciones de "tablero de dibujo" también se envíen continuamente de vuelta al servidor para compartir los datos actualizados con el otro cliente. Estoy seguro de que habrá un evento que puede usar para activar la publicación de datos (por ejemplo, con el mouse hacia arriba).

Si el rendimiento es un problema, querría utilizar una mejor tecnología de servidor como Java que pueda mantener el estado de la sesión entre las solicitudes sin tener que mantenerla en una base de datos.

-1

Estoy seguro de que ha investigado esto. La opinión de que esto se puede hacer a través de ajax es engañoso al creer que dos usuarios de un sitio web pueden comunicarse a través de javascript.

Como sabrá, javascript ocurre en el cliente y ajax está esencialmente 'hablando con el servidor sin un cambio de página o actualización'.

La comunicación entre dos usuarios del sitio web tiene que suceder a través del servidor - php y algún datastore elegido.

Espero que no haya sido cortante. saludos, Rob

0

Flash permite conexiones entre usuarios, creo que se refieren a ellos como enchufes.
Si desea utilizar Ajax, et al, necesita una tecnología de servidor que admita push.
El nodo es el estándar en este sentido, y puede configurar una instancia de Heroku de forma gratuita.

Hay otros, y debe aprender las herramientas incluso antes de comenzar a aprender la aplicación.

Entre las muchas visiones generales, esto podría interesarle:
http://arstechnica.com/business/2012/05/say-hello-to-the-real-real-time-web/?1

0

Unos buenos ejemplos en los que esto está sucediendo:

técnicas que puede utilizar (con diferentes soporte del navegador)

empujando realmente datos a un cliente navegador web desde un servidor (que harían que cuando se recibe algo de otro cliente) sólo es posible con WebSockets por lo que yo sé. Otro mecanismo requeriría complementos de navegador o una aplicación independiente.

Sin embargo, con Comet (a través de AJAX) puede estar muy cerca de empujar datos al sondear periódicamente el servidor para obtener datos. Sin embargo, al contrario que en las encuestas tradicionales (por ejemplo, cuando los clientes piden datos cada 5 segundos), con el principio de Comet, el servidor retendrá esa solicitud periódica como rehén durante, por ejemplo, hasta 30 segundos. El servidor no enviará datos hasta que tenga datos o llegue el tiempo de espera. De esta forma, durante esos 30 segundos, cualquier información que el servidor reciba puede ser instantáneamente enviada a los otros clientes. Y justo después de eso, el cliente comienza una nueva sesión de 30 segundos, y así sucesivamente.

Aunque tanto Comet como WebSockets deberían funcionar con un back-end PHP servido por Apache. Recomiendo buscar en NodeJS (como tecnología de servidor) para esto.

Hay mucha información sobre Comet en Internet, sugiero que lo busque en google, tal vez comience en Wikipedia.

Lo bueno de Comet es que es más un principio que una tecnología. Utiliza lo que ya tenemos (solicitudes HTTP simples con AJAX), por lo que el soporte del navegador es muy amplio.

También podría hacer una combinación, donde utiliza enchufes si es compatible y recurrir a Comet.

Cuestiones relacionadas