Volver al blog

Creando un Chat Simple con Socket.IO y Node.js 💬

En este tutorial, vamos a crear un chat en tiempo real usando Socket.IO y Node.js. Socket.IO es una biblioteca que permite la comunicación en tiempo real, bidireccional y basada en eventos entre el navegador y el servidor.

Preparando el Ambiente

Para comenzar, asegúrate de que tienes Node.js y npm instalados en tu sistema. Si no los tienes, puedes descargar Node.js aquí. Después de la instalación, puedes instalar Socket.IO con el siguiente comando:

npm install socket.io

Configurando el Servidor

Vamos a comenzar creando un servidor HTTP simple en Node.js. A continuación, vamos a configurar Socket.IO para usar ese servidor:

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = socketIo(server);

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', socket => {
  console.log('Un usuario se conectó');
});

server.listen(3000, () => {
  console.log('Servidor escuchando en el puerto 3000');
});

Creando la Interfaz de Usuario

Ahora, vamos a crear una interfaz de usuario simple para nuestro chat. En el archivo index.html, vamos a agregar un formulario para enviar mensajes y un área para mostrar los mensajes recibidos:

<!DOCTYPE html>
<html>
  <body>
    <ul id="messages"></ul>
    <form action="">
      <input id="m" autocomplete="off" /><button>Enviar</button>
    </form>
    <script src="/socket.io/socket.io.js"></script>
    <script>
      const socket = io();
      document.querySelector('form').addEventListener('submit', event => {
        event.preventDefault();
        const input = document.getElementById('m');
        socket.emit('chat message', input.value);
        input.value = '';
      });
      socket.on('chat message', msg => {
        const item = document.createElement('li');
        item.textContent = msg;
        document.getElementById('messages').appendChild(item);
      });
    </script>
  </body>
</html>

Finalizando el Chat

Ahora, vamos a volver a nuestro servidor y agregar el código para recibir y enviar mensajes:

io.on('connection', socket => {
  console.log('Un usuario se conectó');
  socket.on('chat message', msg => {
    io.emit('chat message', msg);
  });
});

Conclusión

¡Felicidades! Has creado un chat en tiempo real básico con Socket.IO y Node.js. ¡Este es un excelente punto de partida para la creación de aplicaciones más complejas en tiempo real!

Para continuar mejorando tus habilidades en Node.js y Socket.IO, consulta el artículo sobre Aprendiendo sobre APIs RESTful en Node.js.

¡Vamos a por ello! 🦅

Comentarios (0)

Este artículo aún no tiene comentarios 😢. ¡Sé el primero! 🚀🦅

Añadir comentarios