Об этом проекте
Real-time Visitor Counter in Turbo Monorepo — это проект с открытым исходным кодом, демонстрирующий отслеживание посетителей в реальном времени через WebSockets. Приложение подсчитывает уникальных посетителей для каждого URL-«комнаты» и агрегирует общее количество по всем активным комнатам.
Архитектура: Проект использует структуру монорепозитория Turborepo. Фронтенд находится в папке client/ как приложение Vue 3 + Vite. Бэкенд расположен в server/ как Cloudflare Worker, использующий Durable Objects для хранения состояния в реальном времени. Обмен данными между слоями происходит через WebSockets.
Возможности:
- Подсчет посетителей по комнатам на основе текущего URL браузера
- Глобальный подсчет посетителей по всем одновременно активным комнатам
- Динамическое переключение окружений: разработка использует ws://localhost:8787, продакшн — wss:// сконфигурированные URL
- Горячая перезагрузка сервера разработки через turbo dev
Технологический стек:
- Фронтенд: Vue 3, Vite
- Бэкенд: Cloudflare Workers, Cloudflare Durable Objects
- Оркестрация монорепозитория: Turborepo
- Менеджер пакетов: pnpm
Предварительные требования:
- Node.js и pnpm
- Аккаунт Cloudflare с включёнными Workers
- Установленный глобально CLI wrangler
- Установленный глобально Turborepo
Установка и настройка:
1. Клонируйте репозиторий и выполните pnpm install из корня.
2. Установите turbo и wrangler глобально через pnpm.
3. Авторизуйте wrangler командой wrangler login.
4. Настройте wrangler.toml в директориях client/ и server/.
5. Запустите turbo dev для запуска сервера разработки и локального worker.
6. Посетите http://localhost:5175 в нескольких вкладках или устройствах, чтобы увидеть обновления в реальном времени.
Развертывание выполняется через turbo deploy из соответствующей директории apps/worker.
Демо: https://wsdemo.cvyl.me
Репозиторий: cvyl/cloudflare-websocket-livecount
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.