2010-01-15 11 views
5

Estoy interesado en una forma realmente buena de hacer mensajes instantáneos como meebo, facebook y myspace, también para notificaciones en una página. Ejemplo en mi sitio ahora, cuando un usuario recibe un nuevo mensaje de correo, comentario fotográfico, comentario de perfil, solicitud de amistad, algunas otras cosas, recibirán un mensaje de notificación y un enlace en la página en la que están usando jQuery y AJAX.¿La mejor manera de mostrar notificaciones y mensajes en vivo en una página web?

Creo a gran escala que esta no es la mejor manera de hacerlo, ya que mi código jquery básicamente tendrá que ejecutar un script PHP para consultar la tabla mysql cada 30 segundos más o menos por cada usuario que tenga la página abrir con esta secuencia de comandos en ejecución. Me gustaría agregar eventualmente algún tipo de mensaje instantáneo como facebook en una barra de chat en la parte inferior de la pantalla si puedo encontrar una forma eficiente de hacerlo.

He escuchado los términos Comet y HTML5 WebSockets, pero no estoy seguro de si estas son las soluciones que debería buscar para dicha función. Me gustaría mantener el ancho de banda al mínimo y ejecutar una consulta cada pocos segundos no parece ser muy eficiente en un sitio con mucho tráfico.

Si conoces a algunas buenas soluciones, por favor explicar cómo funcionan un poco por favor

Respuesta

1

Creo que Facebook utiliza XMPP por su charla, así que echar un vistazo a él.

XMPP es

una tecnología abierta para la comunicación en tiempo real, que alimenta una amplia gama de aplicaciones, incluyendo la mensajería instantánea, presencia, chat en múltiples partes, llamadas de voz y video, colaboración, middleware ligero, el contenido sindicación y enrutamiento generalizado de datos XML.

Se podría instalar un separate server para manejar mensajes y en su aplicación que desea implementar un cliente con una de las disponibles libraries.

1

Podría tener una cola de mensajes compartido que Ajax puede consultar? Tal vez es un script php que almacena la mayoría del mensaje en memcached (y posiblemente escriba a db en caso de falla).

No estoy seguro, pero curiosidad por escuchar otras soluciones ...

2

Está buscando un servidor "cometa". Ya que habla PHP, su mejor solución sería una solución SaaS, como WebSync On-Demand, ya que PHP tiene problemas con la escala cuando se trata de mantener un gran número de conexiones simultáneas. Vea también this question.

0

El problema básico es que debe implementar un servidor Comet (es decir, implementar Server Push). Los servidores web estándar y apache no te permiten hacer esto fácilmente. Otra solución alojada (aparte de Web Sync) es Goldfish Server. Es gratis por ahora.

Cuestiones relacionadas