Implementación sencilla de WebSocket
El protocolo WebSocket es un nuevo protocolo de red basado en TCP. La comunicación del navegador suele basarse en el protocolo HTTP, ¿por qué se necesita otro protocolo? Porque http solo puede ser iniciado por el cliente, no por el servidor.
El navegador y el servidor WebSocket solo necesitan completar un protocolo de enlace y se puede crear una conexión persistente directamente entre los dos para la transmisión de datos bidireccional.
Especificación de WebSocket
El protocolo WebSocket es esencialmente un protocolo basado en TCP. Para establecer una conexión WebSocket, el navegador del cliente primero debe iniciar una solicitud HTTP al servidor. Esta solicitud es diferente de la solicitud HTTP habitual y contiene información de encabezado adicional. La información adicional se muestra en la figura.
Proceso de conexión (Tome js (cliente) y java (servidor) como ejemplos)
js: ws.send (String msg) ps: El parámetro de entrada puede ser una cadena o una cadena json java: El mensaje onMessage (String message) es la información enviada desde el cliente
java: sendUser (String msg) js: ws.onmessage
4. Desconectar onclose (CloseReason motivo)
CloseReason.CloseCode (código de estado de conexión cerrada de WebSocket, similar al 404 de http)
parte js:
parte java (implementación javax):
ps: la sesión se utiliza para identificar de forma única el objeto de conexión
Utilice la anotación @ServerEndpoint
Referencias
javax websocket: (documento API de implementación del lado del servidor) https ://tomcat .apache.org/tomcat-8.0-doc/websocketapi/javax/websocket/package-summary.html
js websocket: (documentación de la API del cliente) https://developer.mozilla.org /zh- CN/docs/Web/API/WebSocket
rfc6455 (especificación del protocolo websocket): https://datatracker.ietf.org/doc/rfc6455/ ** Introducción del producto**