Skip to content

Inicie um servidor WebSocket simples usando Bun.serve.

Dentro de fetch, tentamos atualizar as requisições ws: ou wss: recebentes para conexões WebSocket.

ts
const server = Bun.serve({
  fetch(req, server) {
    const success = server.upgrade(req);
    if (success) {
      // Bun retorna automaticamente um 101 Switching Protocols
      // se a atualização for bem-sucedida
      return undefined;
    }

    // lida com a requisição HTTP normalmente
    return new Response("Hello world!");
  },
  websocket: {
    // TypeScript: especifique o tipo de ws.data assim
    data: {} as { authToken: string },

    // isso é chamado quando uma mensagem é recebida
    async message(ws, message) {
      console.log(`Recebido ${message}`);
      // envia de volta uma mensagem
      ws.send(`Você disse: ${message}`);
    },
  },
});

console.log(`Ouvindo em ${server.hostname}:${server.port}`);

Bun by www.bunjs.com.cn edit