2011-08-18 39 views
6

Soy principiante en aplicaciones en tiempo real (por ejemplo, Chat, MMORPG), pero estoy bien en php y ajax. He programado un chat usando php y ajax (Interval 1000ms) ... ¡Después, mi sitio se ha vuelto muy pesado debido a la gran presión sobre el servidor!Tiempo real y php?

Deseo obtener información sobre cómo reducir la presión en el servidor.

gracias de antemano

+3

considere un lenguaje más apropiado. –

+0

Estoy de acuerdo con Dagon: una aplicación en tiempo real realmente castigará a un único servidor que ejecute PHP. Reescribí una aplicación de PHP en tiempo real para usar el nodo.js en su lugar, y recibe miles de golpes por minuto sin ningún drama en absoluto. –

+0

Si está contento con su infraestructura existente, puede considerar externalizar la parte de infraestructura en tiempo real a un [servicio alojado en tiempo real] (http://www.leggetter.co.uk/real-time-technologies-guide # hosted-services). – leggetter

Respuesta

1

Busque long-polling ajax

Se solicita sólo una vez al minuto (peticiones no son de 60/minuto, pero 1/minuto)

+0

Esto también causa presión en el servidor. El chat Faceboock es muy rápido? ¡No sé cómo funciona crear eso! – Lokers

+3

@Lokers: Facebook tiene 60 000 servidores ... Sí, el chat de facebook es muy rápido – genesis

+0

Hay sitios que usan solo un host y es rápido – Lokers

0

También puede echar un vistazo a la ajax push engine para hacer streaming de datos en tiempo real (afirman que se escala muy bien). http://www.ape-project.org/

+0

Gracias, voy a probar eso. – Lokers

1

Puede intentar convertir el chat a una aplicación web basada en sockets. No conozco las diferencias de rendimiento entre el uso de AJAX o el uso de sockets, pero el uso de sockets para esto me suena más lógico. :)

+0

Gracias ¿Sabes que un sitio o publicación me da información sobre el conector? – Lokers

+0

http://devzone.zend.com/article/1086 o http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/ También puede buscar algo así como 'socket' chat php '.. :) – Abbas

1

Es posible que desee almacenar los resultados en caché. La configuración de la memoria caché memcached (clave => valor) puede reducir la carga de la base de datos.

Cuando entra una nueva solicitud, solicite a memcache que el valor que está buscando esté en la caché. De lo contrario, solicite el valor al motor de la base de datos, devuelva el valor al usuario y almacénelo en la memoria caché para la próxima vez.

1

librería PHP interesante que proporciona a los desarrolladores herramientas para crear en tiempo real, aplicaciones bidireccionales entre clientes y servidores a través de WebSockets: http://socketo.me/

1

Por lo que sé, hay varias bibliotecas disponibles para crear aplicaciones no bloqueantes y en tiempo real como chat y juegos en tiempo real.

  1. reactphp, implementado en PHP puro, como nodejs, pero el desarrollo parece no muy activo recientemente.

  2. Skyray, una biblioteca de redes para PHP writen en C http://github.com/SkyrayLabs/Skyray

    Esta es una biblioteca de redes para PHP creada por mí, que todavía está bajo desarrollo activo.

  3. swoole, https://github.com/swoole/swoole-src

  4. phpdaemon, https://github.com/kakserpom/phpdaemon