,

Creating a Real-Time Chat using Websockets with React and Node.js

Posted by






Como fazer um CHAT EM TEMPO REAL utilizando WEBSOCKETS com REACT E NODE.JS

Como fazer um CHAT EM TEMPO REAL utilizando WEBSOCKETS com REACT E NODE.JS

Neste artigo, vamos aprender a criar um chat em tempo real utilizando WebSockets em conjunto com React e Node.js.

Passo 1: Configurando o servidor Node.js

Para começar, vamos configurar um servidor Node.js para lidar com as conexões WebSocket. Para isso, vamos utilizar a biblioteca socket.io, que facilita a implementação de comunicação em tempo real.


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

    io.on('connection', (socket) => {
      console.log('Novo usuário conectado');
      socket.on('message', (data) => {
        io.emit('message', data);
      });
    });

    server.listen(3000, () => {
      console.log('Servidor WebSocket está rodando na porta 3000');
    });
  

Passo 2: Criando a interface do chat com React

Agora que temos o servidor WebSocket configurado, vamos criar a interface do chat utilizando React. Vamos usar a biblioteca socket.io-client para se conectar ao servidor WebSocket e enviar e receber mensagens em tempo real.


    import React, { useState, useEffect } from 'react';
    import io from 'socket.io-client';

    const socket = io('http://localhost:3000');

    const Chat = () => {
      const [messages, setMessages] = useState([]);
      const [input, setInput] = useState('');

      useEffect(() => {
        socket.on('message', (data) => {
          setMessages(messages => [...messages, data]);
        });
      }, []);

      const sendMessage = () => {
        socket.emit('message', input);
        setInput('');
      };

      return (
        
    {messages.map((message, index) => (
  • {message}
  • ))}
setInput(e.target.value)} />
); }; export default Chat;

Passo 3: Testando o chat em tempo real

Agora que o servidor Node.js e a interface do chat em React estão prontos, podemos testar a aplicação. Inicie o servidor Node.js e acesse a interface do chat em um navegador. Você verá que as mensagens enviadas por um usuário serão recebidas em tempo real por todos os usuários conectados.

Com isso, você aprendeu como criar um chat em tempo real utilizando WebSockets com React e Node.js. Essa é apenas uma introdução ao uso de WebSockets, e existem muitas outras funcionalidades e possibilidades a serem exploradas.


0 0 votes
Article Rating
17 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Altair
10 months ago

buena explicacion.

Iniciante em programação
10 months ago

Que vídeo incrível!
Só tenho uma pequena duvida, se eu quisesse fazer um sistema onde depois de uma tempo ele removesse os usuário não ativo.Exemplo: uma pessoa cria uma conta depois de um tempo ela deixa de usar aquele site e para não ficar um usuário fantasma o sistema remove aquela conta, como eu faria um sistema dessa forma?

L Pontes
10 months ago

Tentei fazer Deploy e de várias formas retornava erro. Só consegui fazer deploy da pasta client, só que eu vou precisar também do servidor para testar a aplicação hospedada no Vercel

Dhyon Keyllo
10 months ago

Parabéns cara, excelente explicação

Lucas Camacho
10 months ago

como fazer o deploy?

Ricardo Vieira
10 months ago

Agr fica a pergunta, onde sites como facebook e wathsapp salvam essas mensagens??? Banco de dados?

AJK 🅥
10 months ago

Que vídeo bom slk

Fala Que Eu Desenho
10 months ago

Muito bom, melhor vídeo que vi até agora!!

Vinicius Quirino
10 months ago

Parabens cara, muito bem explicado!!!

Lorena Debs
10 months ago

Top!

Darkside Editions
10 months ago

O meu fica invés de gerar uma nova messagem, edita o anterior. Sabe o motivo?

Steiner
10 months ago

Top d+

Nightly Code
10 months ago

perfeito

Matheus Felipe
10 months ago

Perfeito! Obrigado pela explicação maravilhosa!

Ewerton Baco
10 months ago

Sugestão, você poderia fazer um vídeo construindo um bot para o discord em node? mas de qualidade, a maioria dos que tem no YT estão desatualizados
+1Inscrito

Xande Joga
10 months ago

Mais um inscrito, vim pelo seu vídeo do mercado livre, achei muito massa.

Versale
10 months ago

muito foda mano, brilhou a vontade de fazer algo parecido com node, faz mais vídeos assim 🦾