Apex T.I.C

Endpoint: WebSocket

O que é WebSocket?

WebSocket é um protocolo de comunicação em tempo real que permite a troca contínua de dados entre o cliente e o servidor. Ao contrário das requisições HTTP, que funcionam no modelo de requisição-resposta, WebSockets permitem comunicação bidirecional e persistente, onde tanto o cliente quanto o servidor podem enviar e receber dados a qualquer momento.

Essa abordagem torna o WebSocket uma escolha ideal para aplicações que exigem respostas instantâneas ou sincronização em tempo real, como chats, dashboards financeiros, jogos e monitoramento ao vivo.

Funcionamento Técnico

A conexão WebSocket começa com uma requisição HTTP padrão com o cabeçalho Upgrade: websocket. Se o servidor aceitar, a conexão é "elevada" para WebSocket. A partir daí, a comunicação ocorre por quadros (frames) de dados que são muito menores e mais eficientes que os pacotes HTTP tradicionais.

Além disso, o canal permanece aberto até ser explicitamente fechado, o que significa menos overhead de conexão e menor uso de largura de banda para comunicações frequentes.

Vantagens do WebSocket

Casos de Uso Reais

Exemplo de Código Backend com Node.js (ws)

// Instale o pacote: npm install ws
const WebSocket = require('ws');

const server = new WebSocket.Server({ port: 8080 });

server.on('connection', socket => {
  console.log('Novo cliente conectado');

  socket.send('Bem-vindo ao servidor WebSocket da Apex T.I.C!');

  socket.on('message', message => {
    console.log(`Mensagem recebida: ${message}`);
    socket.send(`Você disse: ${message}`);
  });

  socket.on('close', () => {
    console.log('Cliente desconectado');
  });
});

Esse código cria um servidor WebSocket que escuta na porta 8080, envia uma mensagem de boas-vindas ao cliente e ecoa cada mensagem recebida.

Exemplo de Código Frontend

<script>
  const socket = new WebSocket('ws://localhost:8080');

  socket.onopen = () => {
    console.log('Conectado ao servidor');
    socket.send('Olá, servidor!');
  };

  socket.onmessage = (event) => {
    console.log('Mensagem do servidor:', event.data);
  };

  socket.onclose = () => {
    console.log('Conexão encerrada');
  };
</script>

Esse exemplo mostra como se conectar ao servidor WebSocket do lado do navegador e interagir com ele.

Boas Práticas e Considerações

Ferramentas e Bibliotecas Populares