Socketio debe usarse en node; socketio es una biblioteca de nodejs. Utiliza funciones de nodejs para encapsular algunas funciones y se basa en algunas API de nodejs, por lo que solo se puede usar en nodejs. También se establece entre el cliente y el servidor. Tecnología de intercambio de datos de comunicación bidireccional, utilizando EngineIO en la capa inferior.
El entorno operativo de este artículo: sistema Windows 10, nodejs versión 16, computadora Dell G3.
Socketio es una biblioteca de nodejs. Es equivalente a otras que usan funciones de nodejs para encapsular algunas funciones para su uso. Depende de algunas API de nodejs, por lo que solo se puede usar en nodejs.
SocketIO es una tecnología de intercambio de datos de comunicación bidireccional establecida entre el cliente y el servidor, utilizando EngineIO en la parte inferior. El cliente de SocketIO usa Engine.IO-Client y el servidor usa Engine.IO.
Ampliar conocimientos
Cómo funciona SocketIO
Cuando un navegador intenta establecer SocketIO, SocketIO primero usa xhr-polling para crear una encuesta larga. Una vez que se establezca el sondeo largo, se actualizará a una conexión WebSocket.
La capa inferior de SocketIO se implementa utilizando la biblioteca EngineIO, que encapsula su propio protocolo Socket (llamado temporalmente EIO Socket) usando WebSocket y XMLHttprequest. Un EIO Socket completo incluye múltiples conexiones XHR y WebSocket.
cliente
Los sockets EIO pasan un protocolo de enlace XHR (XMLHttprequest). La interfaz envía un XHR para decirle al servidor que quiero iniciar el sondeo largo XHR. Los datos devueltos por el backend incluyen un indicador de apertura (representado por el número 0), así como campos sid y actualizaciones, intervalo de ping y tiempo de espera de ping.
0{"sid": "8b7ab1ae-fbcf-4d23-8192-3c14a2a90721", "upgrades": ["websocket"], "pingInterval": 10000, "pingTimeout": 60000}sid es el ID de sesión de este socket EIO. Debido a que un socket EIO contiene múltiples solicitudes y el backend se conectará a múltiples sockets EIO al mismo tiempo, el sid es equivalente al ID de SESIÓN.
Otro campo actualizaciones, normalmente ['websocket'], indica que el método de conexión se puede actualizar de sondeo largo a WebSocket.
La interfaz inicia el sondeo largo XHR cuando envía el primer XHR. Si es necesario enviar y recibir datos en este momento, se implementa mediante un sondeo largo. El llamado sondeo largo significa que el front-end envía una solicitud y el servidor espera hasta que haya datos para devolver antes de responder. El front-end envía inmediatamente la siguiente solicitud después de recibir la respuesta. Esto permite la comunicación bidireccional.
Después de que el front-end reciba las actualizaciones del protocolo de enlace, EIO detectará si el navegador admite WebSocket. Si lo hace, iniciará una conexión WebSocket y luego enviará un dato con el contenido de la sonda y el tipo de ping al servidor a través de esto. WebSocket. Si el servidor devuelve datos con el contenido de la sonda y el tipo de pong en este momento, el front-end detendrá el sondeo largo HTTP establecido previamente y solo utilizará el canal WebSocket para enviar y recibir datos.
Durante el ciclo de vida del EIO Socket, hará ping-pong una vez de vez en cuando para comprobar si la red es normal.
Esta es la estructura del marco WebSocket, el verde envía y el blanco recibe. El número anterior es el tipo de paquete de datos, 2 es ping, 3 es pong, 42 es mensaje
Aprendizaje recomendado: "videotutorial de nodejs"
Los anteriores son los detalles sobre si socketio debe usarse en node. Para obtener más información, preste atención a otros artículos relacionados en este sitio.