Pregunta

Estoy interesado en una muy buena manera de hacer la mensajería instantánea como Meebo y facebook y myspace todos tienen, también para las notificaciones en una página. Ejemplo en mi sitio ahora, cuando un usuario recibe un nuevo mensaje de correo, comentario de la foto, el perfil comentario, solicitud de amigos, algunas otras cosas, que recibirá un mensaje de notificación y el enlace de la página que están usando jQuery y AJAX.

Creo en gran escala que esta no es la mejor manera de hacerlo, aunque como mi código jQuery tendrá que ejecutar básicamente un script PHP para consultar la tabla de MySQL cada 30 segundos más o menos por cada usuario que tiene la página abierta con este script en ejecución. Me gustaría añadir, finalmente, en una especie de mensajería instantánea como Facebook tiene en una barra de chat en la parte inferior de la pantalla si puedo encontrar una forma eficaz de hacerlo.

He escuchado los términos Comet y HTML5 WebSockets, pero no estoy seguro de si estas son las soluciones que debe mirar a esta característica? Me gustaría mantener el ancho de banda en un mínimo y ejecutar una consulta cada pocos segundos no parece muy eficiente en un sitio de alto tráfico.

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

¿Fue útil?

Solución

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, sindicación de contenidos, y el enrutamiento generalizada de datos XML.

Se podría instalar un servidor independiente manejar mensajería y en su aplicación que desea implementar un cliente con una de las bibliotecas .

Otros consejos

Usted está en busca de un servidor de "cometa". Dado que estamos hablando de PHP, la mejor solución sería una solución SaaS, tales como WebSync On-Demand , a partir de PHP tiene problemas con el escalamiento cuando se trata de un gran número de conexiones simultáneas que se mantiene abierto. Ver también esta pregunta .

Podría tener una cola de mensajes compartido que Ajax puede consultar? Tal vez es un script PHP que almacena una mayoría del mensaje en memcached (y posiblemente escribir en dB en caso de fallo).

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

El problema básico es que es necesario implementar un servidor Comet (es decir, la función Push Server). Los servidores web Apache estándar y no permiten fácilmente que usted pueda hacer esto fácilmente. Otra solución alojada (aparte de Web Sync) es Goldfish servidor . Actualmente libre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top