w3schools tag tab color attribute javascript real-time stackexchange

javascript - tag - title html w3schools



¿Cómo funcionan las actualizaciones en tiempo real? (3)

Facebook usa long polling/Comet . Entonces hace una conexión y espera una respuesta, si no hay respuesta, se agota y vuelve a intentarlo. El tiempo de espera es de alrededor de 40 segundos. Así es como hace la mayor parte de la actualización instantánea. Sin embargo, usan una combinación de técnicas. Más sobre largas encuestas aquí.

http://en.wikipedia.org/wiki/Comet_(programming)

Hoy en día, las actualizaciones en tiempo real son comunes en la mayoría de los sitios populares que tienen muchos usos.

Me pregunto cómo funcionan estas "actualizaciones en tiempo real". Solo estoy buscando una perspectiva general de vista de pájaro. Sospecho que el JS no puede llamar al servidor cada X segundos para una actualización y luego anexarlo a <ul> . ¿Se envió una notificación desde el servidor para extraer más contenido?

¿Sería genial si hay un artículo simple sobre cómo explicar esto con una demostración?


Parece que Twitter también usa XHR simple (intervalos de 1 minuto) para sus "actualizaciones en tiempo real".


está utilizando HTML5 para actualizaciones en tiempo real. Si echa un vistazo al código fuente (código fuente 2012), verá:

StackExchange.ready(function () { StackExchange.realtime.init(''ws://sockets.ny.stackexchange.com''); StackExchange.realtime.subscribeToInboxNotifications(); StackExchange.realtime.subscribeToReputationNotifications(''1''); });

Pero tenga en cuenta que algunas versiones de Opera no son compatibles con WebSocket. ( no hasta Opera 10.70 )

Sin embargo, Facebook no parece estar utilizando Web Sockets, y creo que solo están usando un XHR simple con una técnica llamada larga encuesta , que el servidor mantiene en la conexión hasta que haya nueva información, y luego responden a la solicitud. Si abre las herramientas de desarrollador puede ver que siempre hay una solicitud que tiene un estado de pendiente.

De hecho, está enviando una solicitud cada ~ 60 segundos.