,

Real-time Chat with Socket.IO and Express/NodeJS

Posted by






Chat en Tiempo Real con Socket.IO y Express/NodeJS

Chat en Tiempo Real con Socket.IO y Express/NodeJS

El chat en tiempo real es una herramienta muy útil para la comunicación instantánea entre usuarios. Con Socket.IO, podemos implementar un chat en tiempo real en nuestra aplicación web utilizando Express y NodeJS.

¿Qué es Socket.IO?

Socket.IO es una librería de JavaScript que permite la comunicación bidireccional en tiempo real entre el cliente y el servidor. Utiliza WebSockets, pero también implementa otros mecanismos de comunicación si los WebSockets no están disponibles en el cliente.

Implementación del chat en tiempo real

Para implementar un chat en tiempo real con Socket.IO, primero necesitamos instalar las dependencias necesarias:

      
        npm install express socket.io
      
    

Luego, creamos nuestro servidor con Express y configuramos Socket.IO para manejar la comunicación en tiempo real:

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

        io.on('connection', (socket) => {
          console.log('a user connected');
          socket.on('chat message', (msg) => {
            io.emit('chat message', msg);
          });
          socket.on('disconnect', () => {
            console.log('user disconnected');
          });
        });

        http.listen(3000, () => {
          console.log('listening on *:3000');
        });
      
    

En el código de arriba, estamos creando un servidor con Express y configurando Socket.IO para manejar la comunicación en tiempo real. Cuando un usuario se conecta, imprimimos un mensaje en la consola. Cuando un usuario envía un mensaje en el chat, lo emitimos a todos los usuarios conectados. Cuando un usuario se desconecta, también imprimimos un mensaje en la consola.

Interfaz de usuario

Para la interfaz de usuario del chat, podemos utilizar HTML, CSS y JavaScript para mostrar los mensajes en tiempo real y enviar nuevos mensajes:

      
        <div id="messages"></div>
        <input id="m" autocomplete="off" />
        <button>Send</button>

        <script src="/socket.io/socket.io.js"></script>
        <script>
          const socket = io();

          document.querySelector('form').addEventListener('submit', function(e) {
            e.preventDefault();
            socket.emit('chat message', document.getElementById('m').value);
            document.getElementById('m').value = '';
            return false;
          });

          socket.on('chat message', function(msg) {
            const item = document.createElement('li');
            item.textContent = msg;
            document.getElementById('messages').appendChild(item);
          });
        </script>
      
    

En el código de arriba, estamos creando una interfaz de usuario sencilla para el chat en tiempo real. Cuando un usuario envía un mensaje, lo enviamos al servidor a través de Socket.IO. Cuando recibimos un mensaje del servidor, lo mostramos en la interfaz de usuario.

Conclusión

Con Socket.IO, Express y NodeJS, podemos implementar un chat en tiempo real de forma sencilla y efectiva. Esta herramienta es muy útil para aplicaciones web que requieren comunicación instantánea entre usuarios.


0 0 votes
Article Rating
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Code CBDX
7 months ago

Olvide mencionar en el vídeo que pueden enviar imágenes, solamente deben dar Click en el icono para enviar archivos, seleccionar la imagen y dar Click en enviar.

¡Saludos! 😎

Vacca Zamora Diego Leandro
7 months ago

Se podria implementar remoto en aws?

Hiram Méndez
7 months ago

q joya, toca robarlo

Mauricio Castillo
7 months ago

Great