WebSocket сервер для интерактивной галактики звёзд, построенный на Elysia и Bun.
- Bun - JavaScript runtime и пакетный менеджер
- Elysia - быстрый веб-фреймворк для Bun
- WebSockets - для real-time коммуникации
- TypeScript - строгая типизация
- Endpoint:
/ws - Протокол: JSON сообщения с каналами
- Функции:
- Создание и управление звёздами в галактике
- Real-time синхронизация между клиентами
- Автоматическое назначение цветов клиентам
- Подписка на каналы для группового взаимодействия
{
channel: string, // канал для сообщения
payload: any // данные сообщения
}interface Star
{
id: string; // уникальный идентификатор
x: number; // координата X
y: number; // координата Y
color: string; // цвет в формате OKLCH
}- Bun >= 1.0
bun installbun devbun dev --port 4200GET /- проверка работоспособности сервера
WS /ws- подключение к WebSocket серверу
src/
├── index.ts # точка входа и настройка сервера
├── webSockets.ts # WebSocket логика и обработчики
└── colors.ts # генерация случайных цветов
Проект включает Dockerfile для контейнеризации:
docker build -t sockets-galaxy-api .
docker run -p 3000:3000 sockets-galaxy-api- Модульная архитектура с разделением WebSocket логики
- Типизированные интерфейсы для всех данных
- Автоматическая перезагрузка в режиме разработки
- TypeScript конфигурация в
tsconfig.json - Поддержка ES модулей
- Строгая типизация включена