Inicialización del cliente
Una vez que hayas instalado la biblioteca del cliente Socket.IO, ahora puedes inicializar el cliente. La lista completa de opciones se puede encontrar aquí.
Para usuarios de TypeScript, es posible proporcionar sugerencias de tipo para los eventos. Por favor revisa esto.
En los ejemplos a continuación, el objeto io proviene de:
- la importación por
<script>
<script src="/socket.io/socket.io.js"></script>
- una importación ESM
<script type="module">
import { io } from "https://cdn.socket.io/4.8.1/socket.io.esm.min.js";
</script>
- NPM
- CommonJS
- ES modules
- TypeScript
const { io } = require("socket.io-client");
import { io } from "socket.io-client";
import { io } from "socket.io-client";
Desde el mismo dominio
Si tu frontend se sirve desde el mismo dominio que tu servidor, puedes simplemente usar:
const socket = io();
La URL del servidor se deducirá del objeto window.location.
Desde un dominio diferente
En caso de que tu frontend no se sirva desde el mismo dominio que tu servidor, tienes que pasar la URL de tu servidor.
const socket = io("https://server-domain.com");
En ese caso, por favor asegúrate de habilitar Cross-Origin Resource Sharing (CORS) en el servidor.
Puedes usar tanto https como wss (respectivamente, http o ws).
// las siguientes formas son similares
const socket = io("https://server-domain.com");
const socket = io("wss://server-domain.com");
const socket = io("server-domain.com"); // solo en el navegador cuando la página se sirve sobre https (no funcionará en Node.js)
Namespace personalizado
En los ejemplos anteriores, el cliente se conectará al namespace principal. Usar solo el namespace principal debería ser suficiente para la mayoría de los casos de uso, pero puedes especificar el namespace con:
// versión del mismo origen
const socket = io("/admin");
// versión cross origin
const socket = io("https://server-domain.com/admin");
Puedes encontrar más detalles sobre namespaces aquí.
Opciones
La lista completa de opciones disponibles se puede encontrar aquí.