chat en tiempo real con la notificación de inserción
-
21-08-2019 - |
Pregunta
Estoy trabajando en una funcionalidad messasing privado para mi sitio, ¿hay una manera de obtener notificaciones push desde el servidor, que el usuario ha recibido un nuevo mensaje?
la única técnica que sé es constante para sondear el servidor a través de AJAX para ver si hay nuevos mensajes, y volver a cargar la ventana del messenger si es necesario.
Gracias por cualquier comentario!
UPD: hasta ahora las siguientes direcciones se han identificado:
1) Comet
2) BOSH - bidireccionales corrientes Más síncrono HTTP
3) XMPP - esto es lo que Google Talk se basa en
Solución
Es posible que desee ver en XMPP y Bosh. Muy cometa como ejabberd y combinado con nginx puede mantener 1000 de conexiones en una caja muy pequeña.
Tome un vistazo a uno de mis proyectos www.vooices.us para ver lo que hemos hecho con XMPP y TONTERÍAS.
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.
Otros consejos
No hay ninguna manera por el servidor para insertar información al cliente, pero siempre se puede utilizar Comet. Sí, estaría sondeando el servidor, pero no constantemente. Se podría mantener cada conexión abierta durante unos 30 segundos (que es el intervalo que siempre he visto aplicar) y luego abrir una nueva conexión cuando sea necesario.
EDIT: Adobe Flash permite conexiones persistentes con el servidor, por lo que podría utilizar eso. Ver este artículo para más detalles.
suena como el cometa probablemente se vincula a algunas cosas útiles (Mira en GTalk de Google):
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 lo uso ejabberd
Puede utilizar Strophe junto con Ejabberd para capturar las notificaciones en javascript. Si desea enviar notificaciones de código
Hay bibliotecas como JAXL y XMPPHP que le permiten hacer esto, pero esto es en PHP.