Este arquivo contém o código do servidor Socket.io que é responsável por gerenciar as conexões e comunicações de chat em tempo real entre clientes.
Antes de executar o servidor, é necessário instalar o pacote Socket.io e suas dependências:
bashCopy codenpm install socket.io e logo dar npm start
A porta padrão para o servidor é 3001, mas pode ser alterada conforme necessário. No exemplo abaixo, o servidor está configurado para ouvir na porta 3001 e permitir conexões somente de origem "http://localhost:3000" com os métodos GET e POST.
javascriptCopy codeconst io = require('socket.io')(3001, { cors: { origin: 'http://localhost:3000', methods: ['GET', 'POST'], }, });
O servidor Socket.io é notificado sempre que um novo cliente estabelece uma conexão. O servidor registra o ID do socket do cliente e imprime uma mensagem de registro no console. Quando um cliente se desconecta, o servidor também é notificado e exibe uma mensagem de desconexão no console.
javascriptCopy codeio.on('connection', (socket) => { console.log(`Nova conexão estabelecida: ${socket.id}`);
socket.on('disconnect', () => { console.log(
Conexão encerrada: <span class="hljs-subst">${socket.id}</span>
); }); });
Quando um cliente envia uma mensagem através do socket, o servidor recebe a mensagem e imprime uma mensagem no console com o conteúdo da mensagem e o ID do socket do cliente que a enviou. Em seguida, o servidor emite a mensagem para todos os clientes conectados.
javascriptCopy codesocket.on('chat message', (msg) => { console.log(`Nova mensagem recebida: ${msg} ${socket.id}`); var x = [msg,socket.id] io.emit('chat message', x); });
O servidor Socket.io é iniciado na porta definida anteriormente e uma mensagem de log é exibida no console para indicar que o servidor está escutando na porta especificada.
javascriptCopy codeconst port = 4000; io.listen(port); console.log(`Servidor Socket.io escutando na porta ${port}`);