Comet

xMarston

Me he estado informando sobre Comet, aunque sin encontrar algo completamente esclarecedor.

Al final he desarrollado un sistema mediante ajax que mantiene la petición activa durante 30 segundos, si en esos 30 segundos el servidor envía un dato la petición termina y se vuelve a lanzar, vale, el sistema es efectivo y no carga al servidor ya que está más o menos optimizado para que la cpu descanse y eso.

Mi duda es, cómo hacen webs como facebook u otras esto que yo quiero, ya que con en Firebug siempre veo la petición activa mientras que en facebook veo que van apareciendo las peticiones, como si el servidor le enviara una señal e inmediatamente mediante ajax la recoge y hace lo que tenga que hacer con ella.

S

Con un timer va realizando peticiones el browser mediante Ajax. Tambien se podria usar websockets.

2 respuestas
xMarston

Algo así imaginaba, gracias.

#2, ¿Y en el caso del chat?

1 respuesta
MTX_Anubis

websockets imagino

1 respuesta
elkaoD

#1 por qué no websockets? Con Socket.IO tienes un stack con fallback a varios métodos en caso de no soportar websockets el navegador (entre otros el tuyo, long polling.)

#2 #4 uy, acabo de leeros.

S

#3 la verdad es que lo he mirado y estaba equivocado. Facebook no va haciendo peticiones cada X tiempo, si no que usa el mismo sistema que tu has hecho. Una petición activa esperando respuesta que cuando caduca o recibe respuesta envia otra.
Tiene un par de timers para ver quien esta online y alguna otra cosa, pero el resto de cosas usan ese sistema.

bLaKnI

Exácto, long polling via Node.js & Socket.io, por ejemplo.

Usuarios habituales