El principio de implementación de WebSocket
Websocket es un protocolo de capa de aplicación en la séptima capa de la capa de aplicación. Debe confiar en el protocolo HTTP para realizar un protocolo de enlace exitoso, y los datos se transmiten directamente desde el canal TCP. no tiene nada que ver con HTTP. Es decir: websocket se divide en etapas de protocolo de enlace y transmisión de datos, es decir, protocolo de enlace HTTP y conexión TCP dúplex.
Echemos un vistazo a los principios de implementación específicos de estas dos etapas:
El cliente envía un mensaje:
El servidor devuelve un mensaje:
Lo que vale la pena señalar aquí es el método de cálculo de Sec-WebSocket-Accept:
base64(hsa1(sec-websocket-key 258EAFA5-E914-47DA-95CA-C5AB0DC85B11))
Si el cálculo de Sec-WebSocket-Accept es incorrecto, el navegador mostrará: Discordancia de Sec-WebSocket-Accept
Si la devolución es exitosa, Websocket devolverá la llamada al evento onopen
La transmisión de datos de Websocket se transmite en forma de cuadro; por ejemplo, un mensaje se dividirá en varios cuadros y se transmitirá en secuencia. Esto tendrá varios beneficios:
El protocolo utilizado para la transmisión websocket es el siguiente:
La descripción de los parámetros es la siguiente:
Después de que comprendamos el principio de implementación de websocket. Consulte los siguientes casos de implementación de golang:
Casos de uso de HTML y js: