Об этом проекте

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