,

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
1 year ago

buena explicacion.

Iniciante em programação
1 year 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
1 year 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
1 year ago

Parabéns cara, excelente explicação

Lucas Camacho
1 year ago

como fazer o deploy?

Ricardo Vieira
1 year ago

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

AJK 🅥
1 year ago

Que vídeo bom slk

Fala Que Eu Desenho
1 year ago

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

Vinicius Quirino
1 year ago

Parabens cara, muito bem explicado!!!

Lorena Debs
1 year ago

Top!

Darkside Editions
1 year ago

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

Steiner
1 year ago

Top d+

Nightly Code
1 year ago

perfeito

Matheus Felipe
1 year ago

Perfeito! Obrigado pela explicação maravilhosa!

Ewerton Baco
1 year 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
1 year ago

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

Versale
1 year ago

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