¿Qué es un WebSocket en términos simples? ¿Cómo puede un servidor enviar datos a un cliente sin una conexión abierta larga?

Cuando visita una página web tradicional, cada recurso (imagen, css, archivo javascript, etc.) con el que se encuentra el navegador al procesar el documento crea una nueva solicitud al servidor (ignorando el almacenamiento en caché del navegador) utilizando el protocolo HTTP. Esto incluye las solicitudes realizadas con Javascript y XML HTTP Requests (XHR).

Vale la pena señalar que un “protocolo” es solo una convención. En este caso, una convención para conectar, transmitir, recibir y desconectar. WebSockets usa un protocolo diferente de HTTP, uno que establece una conexión y luego lo mantiene abierto hasta que abandona la página. Es un poco confuso porque WebSockets realmente comienza la comunicación a través de HTTP, pero luego se “actualiza” de forma transparente al protocolo especial de WebSockets. La comunicación a través de esta conexión mejorada no es lo mismo que el HTTP GET / POST / etc de la vieja escuela, es un lenguaje especial que admite la transferencia simultánea de datos en ambas direcciones.

Si piensa en dos personas que tienen una conversación, donde Bob es el navegador y Steve es el servidor, HTTP tradicional sería algo como esto:
Bob le da la mano a Steve y dice: “Hola Steve, tráeme el documento que guardas en index.html”. Steve lo busca, lo entrega y dice “OK”. Bob luego mira el documento y nota que hay 35 cosas más que necesita de Steve. Para cada uno, Bob dice: “Hola Steve, tráeme esto aquí”. Y Steve lo busca y se lo entrega si puede, diciendo: “OK” o “No puedo encontrarlo” si no puede encontrarlo, o tal vez algo peor como “No puedo, no puedo”. muriendo “. Pero en ningún momento Steve puede decirle a Bob: “Hola Bob, ¿sigues ahí?” Steve tiene que sentarse y esperar a que Bob le pida algo primero. Y si pasan más de unos segundos antes de que Bob necesite algo más de Steve, tienen que estrechar la mano nuevamente. Hay trucos en los que, después de que Bob pide lo correcto, Steve puede pretender dárselo a Bob muy, muy lentamente, para que pueda seguir hablando con Bob, pero no vamos a entrar en eso.

Los WebSockets son más como una conversación bidireccional. Bob solicita el documento index.html como antes y obtiene una respuesta similar (la página). Pero luego Bob le pide a Steve otro documento, dándole un guiño astuto y un apretón de manos secreto. Steve sabe qué hacer, también le han enseñado el apretón de manos secreto; Están en buena compañía ahora. Pero esta vez no dejan de darse la mano, simplemente aguantan. Debido a esta conexión especial que han hecho, Steve puede hablar con Bob, y Bob puede hablar con Steve cuando lo deseen. Incluso pueden hablar al mismo tiempo y aún entenderse. Son buenos oyentes. Bob también pide cosas a la antigua usanza, pero ahora tienen una línea de comunicación abierta adicional que no se detiene hasta que uno de ellos dice: “Estoy fuera”.

En términos simples: WebSockets es Reglas para una forma de hablar. Una de las reglas es “hablo y escuchas” . Tenga en cuenta que WebSockets es más de una regla, es todo un Libro de Reglas . Puede encontrar el libro de reglas para WebSockets aquí: http://www.rfc-editor.org/rfc/rf … Tradicionalmente, estos libros se consideran libros de referencia; Podrías encontrarlos en una biblioteca.

Reglas de ejemplo para WebSockets:

  1. Envíame una carta por correo si quieres comenzar a hablar.
  2. Cuando reciba su carta por correo, le enviaré algunos detalles sobre mí.
  3. Te diré si estoy dispuesto a hablar contigo o no.
  4. Si queremos hablar de forma segura, esta es la forma de hacerlo.
  5. Cuando me hables, te escucharé.

Eso es todo lo que son los WebSockets; solo un conjunto de reglas. No hay nueva tecnología aquí, nada lujoso. Nada en absoluto. De hecho, WebSockets está apilado en la parte superior de Internet; como todo lo demás Lea esta página Wiki: http://en.wikipedia.org/wiki/TCP … – tiene más detalles sobre las clasificaciones de los libros de reglas; El orden jerárquico de las reglas. WebSockets está en la capa de aplicación . La pila de Reglas para WebSockets va:

Libro de reglas de WebSocket ->
TCP Rule Book ->
Libro de reglas de IP ->
El libro de reglas de WiFi de su computadora.


WebSockets, HTTP, SMTP, IMAP, TELNET, DHCP, DNS, IRC: son lo mismo. ¿Qué son? Reglas para maneras de hablar. Texto estructurado de lectura humana para la comunicación entre dos o más computadoras. Eso es bastante simple, ¿verdad? Cuando descubrí esto yo mismo, me sentí estafado. Me sentí así porque parece que tenía que haber magia para que funcionara. Incorrecto. No hay nada especial sobre HTTP o WebSockets. La verdadera magia está en Internet.

No soy súper técnico, pero lo intentaré. HTTP tradicional es bidireccional pero semidúplex, lo que significa que es más como un modelo de walkie-talkie. Ambos pueden hablar pero no al mismo tiempo. WebSocket es bidireccional, full duplex, lo que significa que funciona como un teléfono. Una vez que me alcances y establezcas la conexión, la conversación puede fluir abiertamente, en ambas direcciones. En cuanto al cómo, lee las otras publicaciones.

More Interesting

¿Qué tan difícil es crear una aplicación web basada en el chat de video en vivo?

¿Cómo obtiene Perfios los detalles de la transacción bancaria cuando ningún banco de la India proporciona API públicas?

¿Dónde almacena sus archivos de desarrollo web?

¿Cuál debería ser mi próximo paso lógico después de crear pantallas de maquetas para mi aplicación?

¿Cómo administro la autenticación de usuario para poder escalar mi aplicación en cualquier momento?

¿Cuál es el nombre de usuario y la contraseña de DVWA web pentesting lab?

¿Cuál es el mejor conversor gratuito de pdf a xls?

¿Cuál es el mejor agregador que proporciona noticias basadas en temas seleccionados por el usuario? (Preferiblemente no use Google)

¿Existen aplicaciones de blog de una sola página que utilicen marcos JavaScript frontales como Backbone.js o AngularJS?

¿Para qué tipos de aplicaciones web es mejor usar Java o C #?

¿Qué frameworks web son ideales para la implementación y producción de un solo hombre desde aspectos visuales a otros menores, es decir, full stack?

¿Cuáles son buenos sitios web / aplicaciones para inversores inmobiliarios residenciales para datos / análisis y análisis predictivo futuro para varios mercados inmobiliarios de EE. UU.?

¿Preferiría asignar JSON a un modelo de objetos o usar JSON simple?

¿Qué empresas de aplicaciones web de Internet crearon su aplicación web con Ruby on Rails?

¿Cuál será su pila tecnológica para crear aplicaciones SaaS escalables de alto rendimiento?