Skip to content

Avvia un semplice server WebSocket usando Bun.serve.

All'interno di fetch, tentiamo di aggiornare le richieste ws: o wss: in arrivo a connessioni WebSocket.

ts
const server = Bun.serve({
  fetch(req, server) {
    const success = server.upgrade(req);
    if (success) {
      // Bun restituisce automaticamente 101 Switching Protocols
      // se l'aggiornamento ha successo
      return undefined;
    }

    // gestisci richiesta HTTP normalmente
    return new Response("Hello world!");
  },
  websocket: {
    // TypeScript: specifica il tipo di ws.data in questo modo
    data: {} as { authToken: string },

    // questo viene chiamato quando si riceve un messaggio
    async message(ws, message) {
      console.log(`Ricevuto ${message}`);
      // invia un messaggio di risposta
      ws.send(`Hai detto: ${message}`);
    },
  },
});

console.log(`In ascolto su ${server.hostname}:${server.port}`);

Bun a cura di www.bunjs.com.cn