Red de conocimiento informático - Problemas con los teléfonos móviles - Implementación de WebSocket

Implementación de WebSocket

Conexión larga: se pueden enviar varios paquetes de datos continuamente en un enlace. Durante el enlace, si no se envían paquetes de datos, ambas partes deben enviar paquetes de verificación de enlace.

TCP/IP. : TCP /IP pertenece a la capa de transporte, que resuelve principalmente problemas de transmisión de datos en la red y solo transmite datos. Sin embargo, no existe una encapsulación, análisis, etc. estandarizados para los datos transmitidos. Esto hace que los datos transmitidos sean difíciles de identificar, por lo que existen protocolos de capa de aplicación para encapsular y analizar los datos, como el protocolo http.

HTTP: El protocolo HTTP es un protocolo de capa de aplicación, utilizado para empaquetar, analizar y transmitir datos. A partir de HTTP 1.1, los enlaces largos se han habilitado de forma predeterminada, es decir, Conexión: Mantener vivo se puede ver en el encabezado de la solicitud. Pero una conexión larga solo significa que se mantiene (el servidor puede decirle al cliente que mantenga el tiempo Keep-Alive: timeout=20; max=20;) este canal TCP y adopta el modo de respuesta del servidor y del cliente (Solicitud-Respuesta ), y no es necesario crearlo nuevamente. Un canal de enlace logra la optimización del rendimiento.

Socket: A diferencia del protocolo HTTP, el socket no es un protocolo, es una encapsulación de interfaz del protocolo de la capa de transporte (como TCP/IP) a nivel de programa. Sabemos que el protocolo de la capa de transporte resuelve el problema de la transmisión de datos en la red, por lo que el socket es la interfaz en ambos extremos del canal de transmisión.

Websocket: WebSocket está empaquetado en un protocolo de capa de aplicación como un socket, que permite al cliente y al servidor remoto establecer una comunicación full-duplex a través de la web.

La API WebSocket es algo introducido por HTML5. En el lado del cliente, podemos usar la API proporcionada por HTML5 para crear, enviar datos, monitorear información, monitorear informes de errores y otras funciones de websocket (HTML5 WebSocket)

Sabemos que WebSocket se implementa sobre la base de Socket, entonces lo que debemos hacer es actualizar el protocolo de Socket existente.

Pasos: el cliente envía una solicitud websocket --gt; el servidor acepta y reconoce la solicitud --gt; actualiza el protocolo de solicitud --gt; establecido --gt; el cliente/servidor envía datos

Actualización del protocolo

Lo que debe tenerse en cuenta aquí es la información del encabezado y el valor de Sec-Websocket-Accept en la información del encabezado.

El valor debe ser un hash cifrado en base64 (sha1). Los datos utilizados para el cifrado son el valor de sec-websocket-key pasado por el cliente y el valor fijo en MAGIC_STRINC. Descripción de MAGIC_STRINC

Los datos transmitidos en Webscoket son un marco de datos (frame)

Existen muchos tipos de marcos de datos: texto y datos binarios

Marco de datos estructura

Cada columna representa un byte, un byte tiene 8 bits y cada bit representa un número binario.

Crear marco de datos

Decodificar marco de datos

Verificación de latidos

Dado que websocket cerrará el canal sin interacción, hay un latido. examinar.

La diferencia entre websocket y otros http

Implementación del protocolo websocket basado en nodo

Uso de nodeJS para implementar WebSocket en HTTP

Cómo déjame El servidor devuelve el valor correcto del encabezado Sec-WebSocket-Accept

Aprenda el protocolo WebSocket: principio de implementación de arriba a abajo

Análisis del marco del protocolo Websocket

nodejs Implementa la recepción y envío de datos Websocket