Ir al contenido principal
Versión: 4.x

Instalación del cliente

información

La última versión actual es 4.8.1, lanzada en octubre de 2024.

Puedes encontrar las notas de la versión aquí.

Compatibilidad de versiones

Aquí está la tabla de compatibilidad entre el servidor y el cliente JS:

Versión del cliente JSVersión del servidor Socket.IO
1.x2.x3.x4.x
1.xNONONO
2.xNO11
3.xNONO
4.xNONO

[1] Sí, con allowEIO3: true

Por favor revisa las guías de migración asociadas:

Soporte de navegadores

Socket.IO soporta IE9 y superiores. IE 6/7/8 ya no son soportados.

La compatibilidad de navegadores se prueba gracias a la increíble plataforma Sauce Labs:

Soporte de navegadores

Instalación

Build independiente

Por defecto, el servidor Socket.IO expone un bundle del cliente en /socket.io/socket.io.js.

io se registrará como una variable global:

<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
</script>

Si no necesitas esto (ver otras opciones abajo), puedes deshabilitar la funcionalidad en el lado del servidor:

const { Server } = require("socket.io");

const io = new Server({
serveClient: false
});

Desde un CDN

También puedes incluir el bundle del cliente desde un CDN:

<script src="https://cdn.socket.io/4.8.1/socket.io.min.js" integrity="sha384-mkQ3/7FUtcGyoppY6bz/PORYoGqOl7/aSUMn2ymDOJcapfS6PHqxhRTMh1RR0Q6+" crossorigin="anonymous"></script>

Socket.IO también está disponible desde otros CDN:

Hay varios bundles disponibles:

NombreTamañoDescripción
socket.io.js34.7 kB gzipVersión sin minificar, con debug
socket.io.min.js14.7 kB min+gzipVersión de producción, sin debug
socket.io.msgpack.min.js15.3 kB min+gzipVersión de producción, sin debug y con el parser msgpack

El paquete debug permite imprimir información de depuración en la consola. Puedes encontrar más información aquí.

Durante el desarrollo, recomendamos usar el bundle socket.io.js. Configurando localStorage.debug = 'socket.io-client:socket', cualquier evento recibido por el cliente se imprimirá en la consola.

Para producción, por favor usa el bundle socket.io.min.js, que es un build optimizado que excluye el paquete debug.

Desde NPM

El cliente Socket.IO es compatible con bundlers como webpack o browserify.

npm install socket.io-client

El cliente también puede ejecutarse desde Node.js.

Nota: por las razones citadas arriba, podrías querer excluir debug de tu bundle del navegador. Con webpack, puedes usar webpack-remove-debug.

Nota para usuarios de TypeScript: los tipos ahora están incluidos en el paquete socket.io-client y por lo tanto los tipos de @types/socket.io-client ya no son necesarios y de hecho podrían causar errores:

Object literal may only specify known properties, and 'extraHeaders' does not exist in type 'ConnectOpts'

Miscelánea

Árbol de dependencias

Una instalación básica del cliente incluye 9 paquetes, de los cuales 5 son mantenidos por nuestro equipo:

└─┬ socket.io-client@4.8.1
├── @socket.io/component-emitter@3.1.2
├─┬ debug@4.3.7
│ └── ms@2.1.3
├─┬ engine.io-client@6.6.3
│ ├── @socket.io/component-emitter@3.1.2 deduped
│ ├── debug@4.3.7 deduped
│ ├── engine.io-parser@5.2.3
│ ├─┬ ws@8.17.1
│ │ ├── UNMET OPTIONAL DEPENDENCY bufferutil@^4.0.1
│ │ └── UNMET OPTIONAL DEPENDENCY utf-8-validate@>=5.0.2
│ └── xmlhttprequest-ssl@2.1.2
└─┬ socket.io-parser@4.2.4
├── @socket.io/component-emitter@3.1.2 deduped
└── debug@4.3.7 deduped

Versiones transitivas

El paquete engine.io-client trae el motor que es responsable de manejar las conexiones de bajo nivel (HTTP long-polling o WebSocket). Ver también: Cómo funciona

Versión de socket.io-clientVersión de engine.io-clientVersión de ws1
4.8.x6.6.x8.17.x
4.7.x6.5.x8.17.x
4.6.x6.4.x8.11.x
4.5.x6.2.x8.2.x
4.4.x6.1.x8.2.x
4.3.x6.0.x8.2.x
4.2.x5.2.x7.4.x
4.1.x5.1.x7.4.x
4.0.x5.0.x7.4.x
3.1.x4.1.x7.4.x
3.0.x4.0.x7.4.x
2.5.x3.5.x7.5.x
2.4.x3.5.x7.5.x

[1] solo para usuarios de Node.js. En el navegador, se usa la API nativa de WebSocket.