"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."
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.
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);
});
});
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);
});
La principales ventajas de Socket.IO sobre WebSockets son: