2011-05-16 7 views
6

Quiero crear una aplicación en vivo, estilo damas, que funcionará así: se mostrarán múltiples iconos/avatares en este tablero de ajedrez, como la superficie. Quiero tener un símbolo del sistema debajo de esta placa, o algún otro tipo de interfaz, que les permita controlar un avatar determinado y obtener acciones preformas. Múltiples usuarios lo utilizarán a la vez, y todos podré ver los cambios/acciones del otro usuario en el tablero de ajedrez.¿Cómo crear una aplicación web en vivo con PHP, JS, CSS y HTML?

Lo que me pregunto es: ¿cuál es la mejor manera de hacerlo? He reducido mi enfoque HTML, CSS y JS, pero no mi método de almacenamiento de datos. Sé que, usando PHP, tengo la opción de usar: almacenamiento basado en archivos, MYSQL o algún otro método. Necesito saber cuál es mejor, porque no quiero tener retraso del servidor, tiempo de respuesta deficiente, o algún otro problema, especialmente en este caso, ya que las acciones se realizarán cada segundo segundo más o menos, por estos usuarios múltiples .

He hecho cosas similares anteriormente, pero quiero escuchar cómo otros lo manejarían (consejos, etc.) de programadores más experimentados.

Respuesta

7

¡Parece un gran proyecto para node.js!

Para aclarar, node.js es una implementación del lado del servidor de javascript. Lo que deseará es una aplicación basada en un cometa (una aplicación cliente basada en la web que recibe impulsos del lado del servidor en lugar de que el cliente esté constantemente sondeando el servidor), que es exactamente lo que node.js es bueno en.

Ajax tradicional pide a sus clientes que sondeen los datos del servidor. Esto crea una sobrecarga enorme para el cliente y el servidor. Permitir que el servidor envíe solicitudes directamente al cliente sin que el cliente lo pregunte repetidamente resuelve el problema de sobrecarga y crea una interfaz más receptiva. Esto se logra manteniendo conexiones de cliente asíncronas en el servidor y solo regresando cuando el servidor tiene algo para responder. Una vez que el servidor responde con datos, el servidor crea y mantiene inmediatamente otra conexión hasta que los datos estén listos para ser enviados.

Es posible que pueda lograr lo mismo con PHP, pero no estoy tan familiarizado con las aplicaciones de tipo PHP y Comet.

El número de usuarios y los costos de alojamiento se reproducirán en su archivo vs opciones de base de datos. Si planeas más de un par de usuarios, me quedaré con la base de datos. Hay algunas opciones de NoSQL disponibles, pero en mi experiencia MySQL es mucho más rápido y más confiable que esas opciones.

¡Buena suerte con su proyecto!

http://en.wikipedia.org/wiki/Comet_%28programming%29

http://www.nodejs.org/

http://zenmachine.wordpress.com/2010/01/31/node-js-and-comet/

http://socket.io/ - abstrae la capa de comunicación con sus clientes en función de su capacidad (LongPolling, WebSockets, etc.)

+0

No puedo encontrar la manera de instalar node.js en mi servidor local (servidor de PC), y mucho menos servidor web ...? – mattsven

+0

Lo descubrí. ¡Gracias! – mattsven

0

MySQL y XCache !! !!

Asegúrese de utilizar sentencias predefinidas para que MySQL no tenga que volver a compilar el SQL. También se pueden usar memtables para usar el almacenamiento de memoria

Por supuesto, utilice los índices de forma adecuada.

Si el 'estado del juego' no es tan importante, incluso puede almacenar todo en XCache. Recuerde que XCache no almacena datos persistentemente (después del reinicio de Apache)

Cuestiones relacionadas