Skip to content

Запустите простой WebSocket-сервер с помощью Bun.serve.

Внутри fetch мы пытаемся обновить входящие запросы ws: или wss: до WebSocket-соединений.

ts
const server = Bun.serve({
  fetch(req, server) {
    const success = server.upgrade(req);
    if (success) {
      // Bun автоматически возвращает 101 Switching Protocols
      // если обновление успешно
      return undefined;
    }

    // обрабатывать HTTP-запрос как обычно
    return new Response("Hello world!");
  },
  websocket: {
    // TypeScript: указать тип ws.data вот так
    data: {} as { authToken: string },

    // это вызывается при получении сообщения
    async message(ws, message) {
      console.log(`Получено ${message}`);
      // отправить сообщение обратно
      ws.send(`Вы сказали: ${message}`);
    },
  },
});

console.log(`Прослушивается ${server.hostname}:${server.port}`);

Bun от www.bunjs.com.cn