2009-05-11 31 views
5

Estoy trabajando en una funcionalidad privada de messishing para mi sitio, ¿hay alguna manera de recibir notificaciones automáticas del servidor, de que el usuario ha recibido un nuevo mensaje?Chat en tiempo real con notificación push

la única técnica que conozco es sondear constantemente el servidor a través de ajax para ver si hay mensajes nuevos, y volver a cargar la ventana del messenger si es necesario.

gracias por cualquier comentario!

UPD: hasta el momento se han identificado las siguientes direcciones:

1) Comet
2) BOSH - bidireccionales corrientes a través de HTTP sincrónico
3) XMPP - esto es lo que Google Talk se basa en

+1

solo una nota BOSH y XMPP van de la mano. – Kinlan

Respuesta

5

Es posible que desee ver en XMPP y Bosh. Muy similar al cometa y ejabberd combinado con nginx puede mantener miles de conexiones en una caja muy pequeña.

Eche un vistazo a uno de mis proyectos www.vooices.us para ver lo que hemos hecho con XMPP y BOSH.

http://www.ejabberd.im/

http://github.com/ssoper/jquery-bosh/tree/master JQueryBosh - para permitir un acceso rápido y fácil a través de HTTP XMPP

Es relativly fácil de configurar e instalar.

Paul.

+0

Pero, ¿funciona en, digamos, Internet Explorer? –

+0

Sí, funciona muy bien. Para ser justos no lo he probado en IE6, pero he hecho IE7 e IE8 – Kinlan

+0

Lo bueno es que todo es javascript desde la perspectiva del cliente. – Kinlan

0

No hay forma de que el servidor envíe información al cliente, pero siempre puede usar Comet. Sí, estarías sondeando el servidor, pero no constantemente. Mantendrá cada conexión abierta durante aproximadamente 30 segundos (ese es el intervalo que siempre he visto utilizado) y luego abrirá una nueva conexión cuando sea necesario.

EDIT: Adobe Flash permite conexiones persistentes al servidor, por lo que puede usarlo. Vea this article para más detalles.

+0

Estoy viendo badoo.com, están usando algunos complementos de Flash para recibir notificaciones, se preguntan si hay algún código fuente disponible. – Andy

+0

Ah, sí, no pensé en eso. Flash permite conexiones persistentes, por lo que es una opción. –

+0

En serio, busque en XMPP y BOSH. – Kinlan

0

Hay un montón de buenas bibliotecas que le ayudan a hacer esto

XMPP - BOSH es una buena combinación que utilizo en mis sitios web

servidores XMPP

Ejabberd, Openfire utilizo ejabberd

Puede utilizar Strophe junto con Ejabberd para capturar notificaciones en javascript. Si desea enviar notificaciones desde el código

Existen bibliotecas como JAXL y XMPPHP que le permiten hacer esto, pero esto está en PHP.

Cuestiones relacionadas