21

WebSockets en NodeJS

24016Puntos

hace 5 años

¿Qué es WebSockets?

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

Un ejemplo básico de WebSockets es lo que hacemos al dejar una llamada abierta con otra persona, aunque estemos todo el tiempo con la llamada en curso, si necesitamos información extra del otro lado simplemente debemos agarrar el teléfono y preguntarle, en lugar de tener que volver a marcar el número y entablar una nueva comunicación.

En pocas palabras WebSockets mantendrá una ruta abierta por la cual recibirá y mandará información en tiempo real sin estar haciendo otras peticiones, esto hará de nuestra API una aplicación mucho más rápida.

¿Por qué utilizar WebSockets?

Con WebSockets envías al servidor mensajes de cadenas simple con datos, y el servidor procesa los datos y las respuestas. La comunicación es más eficiente que HTTP si nos centramos en el tamaño del mensaje, y en la velocidad, especialmente para mensajes de gran tamaño, ya que, en HTTP, por ejemplo, tienes que enviar los headers en cada petición. Esto suma bytes. Además, en REST tienes los recursos en URLs y métodos de HTTP. Lo que significa que, para cada petición, obtienes una respuesta.

¿Cómo usar WebSockets?

Primero que todo debemos iniciar nuestra aplicación con npm init -y e instalar Express y Socket.IO con npm i express socket.io

Construiremos un index.js básico para usar con Socket.IO:

// index.jsconst express = require('express')
const app = express()
const server = require('http').Server(app)
const io = require('socket.io')(server)

// Servimos archivos estáticos en la carpeta public
app.use(express.static('public'))

// Iniciamos una conexión con Socket.IO y con un mensaje
io.on('connection', function (socket) {
  console.log('Nuevo cliente conectado')
  socket.emit('mensaje', 'Bienvenido!')
})

// Enviamos el mensaje del socket con un setInterval
setInterval(function () {
  io.emit('mensaje', 'Hola, desde un Socket.IO de Platzi')
}, 3000)

// Iniciamos el servidor en el puerto 8080
server.listen(8080, function () {
  console.log('Servidor iniciado en http://localhost:8080')
})

Ahora creamos un archivo index.html en el cual nuestro Socket estará funcionando:

<!-- ./public/index.html --><html><head><scriptsrc='/socket.io/socket.io.js'></ script ></head><body><h1>Mira la consola</h1>< script >
      var socket = io.connect('http://localhost:8080', {
        forceNew: true
      })
      
      socket.on('mensaje', function (data) {
        console.log(data)
      })
    </ script ></body></html>

Con este simple ejemplo podemos ver lo fácil que es manejar una conexión Socket con nuestro servidor de Express, ¡pero espera, hay más! En nuestro Curso de NodeJS puedes ver cómo integrarlo y cómo usarlo, ¡y además de eso aprenderás como usar NodeJS! ¿Qué esperas? Es hora de aprender a usar este lenguaje que básicamente es JavaScript para el servidor y dejar de lado PHP y convertirte en ese fullstack JS que el mundo necesita.

#NuncaParesDeAprender 🤓 💪

Daniel
Daniel
danestves

24016Puntos

hace 5 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
3
6183Puntos

Seria muy interesante un curso mas completo de socketIO.

2
38377Puntos

buen post man, cuantas versiones de fullstack hay para javascript ?

1
24016Puntos
5 años

¿A qué te refieres? 🤔

1
let felicitar = function(){
	return"Excelente;"
};