2011-03-15 3 views
5

Ian Hickson says:¿Qué obtienes con los sockets web HTML5 que no puedes tener con AJAX?

espero que la función de marco flotante caja de arena será una gran ventaja para los desarrolladores si despega. Mi característica personal favorita es probablemente la API Web Sockets , que permite la comunicación bidireccional con un servidor para que pueda implementar juegos, chat, controles remotos , y así sucesivamente.

¿Qué se puede obtener con los sockets web que no se pueden obtener con AJAX? ¿Es solo la conveniencia, o es de alguna manera más eficiente? ¿Es que el servidor puede enviar datos al cliente sin tener que esperar un mensaje para que pueda responder?

+0

Por cierto, WebSockets no son parte del estándar HTML5. Es una tecnología independiente. – yojimbo87

+0

Cierto, pero, @yojimbo87, se considera parte de la familia de especificaciones HTML5. Están siendo diseñados para usarse juntos. –

Respuesta

4

Sí, se trata de que el servidor pueda enviar datos al cliente. Actualmente, simulando una comunicación bidireccional sin Flash/Silverlight/Java/ActiveX toma la forma de una de las dos soluciones:

  • de votación tradicional: Los clientes hacen pequeñas peticiones al servidor con frecuencia, la comprobación de actualizaciones. Incluso si no se ha producido ninguna actualización, el cliente no lo sabe y debe buscar continuamente las actualizaciones. Aunque cada solicitud puede ser ligera, la votación constante de muchos clientes puede sumarse rápidamente.
  • Encuesta larga: los clientes realizan solicitudes periódicas de actualizaciones, como sondeos regulares, pero si aún no hay actualizaciones disponibles, el servidor no responde de inmediato y mantiene la conexión abierta. Cuando finalmente hay una actualización disponible, el servidor la envía al cliente, que actúa sobre ella y luego repite ese proceso. Long polling ofrece una resolución de actualización similar a la de un push, pero es básicamente un ataque DDoS autoinfligido y puede requerir muchos recursos para muchos tipos de servidores web.

Con WebSockets, obtiene todas las ventajas de respuesta de larga duración, con una sobrecarga del servidor considerablemente menor.

2

WebSockets son más eficientes (y "más en tiempo real") que las llamadas AJAX porque mantienen la conexión abierta y no envían encabezados de protocolo adicionales y otras cosas después de cada solicitud y respuesta. Mira this artículo:

Durante hacer la conexión con el intercambio WebSocket, cliente y servidor de datos por trama que es de 2 bytes cada uno, comparación con el 8 kilobytes de http cabecera cuando lo hace interrogación continua.

Cuestiones relacionadas