"Es una tecnología que hace posible abrir una sesión de comunicación interactiva entre el navegador del usuario y un servidor. Con esta API, puede enviar mensajes a un servidor y recibir respuestas controladas por eventos sin tener que consultar al servidor para una respuesta."

Untitled

¿Qué es Socket.IO?

Socket.IO es una librería que habilita comunicación bidireccional y basada en eventos en tiempo real, entre el navegador y el servidor.

Consiste en un servidor de Node.js y una librería cliente de javascript para el navegador.

Untitled

Implementación (Servidor)

const io = require("socket.io")(3000);

io.on("connection", socket => {
  //Enviar un mensaje con send
  socket.send("Hello!");

  // o con emit() y nombres personalizados
  socket.emit("greetings", "Hey!", { "ms": "jane" }, Buffer.from([4, 3, 3, 1]));

  // Manejar el evento enviado con socket.send()
  socket.on("message", (data) => {
    console.log(data);
  });

  // Manejar el evento enviado con socket.emit()
  socket.on("salutations", (elem1, elem2, elem3) => {
    console.log(elem1, elem2, elem3);
  });
});

Implementación (Cliente)

const socket = io("ws://localhost:3000");

socket.on("connect", () => {
  socket.send("Hello!");
  socket.emit("salutations", "Hello!", { "mr": "john" }, Uint8Array.from([1, 2, 3, 4]));
});

socket.on("message", data => {
  console.log(data);
});

socket.on("greetings", (elem1, elem2, elem3) => {
  console.log(elem1, elem2, elem3);
});

Diferencias entre WebSocket y Socket.IO

La principales ventajas de Socket.IO sobre WebSockets son: