Criando um Chat Simples com Socket.IO e Node.js 💬
Neste tutorial, vamos criar um chat em tempo real usando Socket.IO e Node.js. O Socket.IO é uma biblioteca que permite a comunicação em tempo real, bidirecional e baseada em eventos entre o navegador e o servidor.
Preparando o Ambiente
Para começar, certifique-se de que você tem Node.js e npm instalados em seu sistema. Se você não tiver, pode baixar Node.js aqui. Após a instalação, você pode instalar o Socket.IO com o seguinte comando:
npm install socket.io
Configurando o Servidor
Vamos começar criando um servidor HTTP simples em Node.js. Em seguida, vamos configurar o Socket.IO para usar esse 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('Um usuário se conectou');
});
server.listen(3000, () => {
console.log('Servidor ouvindo na porta 3000');
});
Criando a Interface do Usuário
Agora, vamos criar uma interface de usuário simples para o nosso chat. No arquivo index.html, vamos adicionar um formulário para enviar mensagens e uma área para exibir as mensagens recebidas:
<!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 o Chat
Agora, vamos voltar ao nosso servidor e adicionar o código para receber e enviar mensagens:
io.on('connection', socket => {
console.log('Um usuário se conectou');
socket.on('chat message', msg => {
io.emit('chat message', msg);
});
});
Conclusão
Parabéns! Você criou um chat em tempo real básico com Socket.IO e Node.js. Este é um ótimo ponto de partida para a criação de aplicações mais complexas em tempo real!
Para continuar aprimorando suas habilidades em Node.js e Socket.IO, confira o artigo sobre Aprendendo sobre RESTful APIs em Node.js.

