«Распределенное» музыкальное плеер веб-приложение.
Игрок находится на серверной машине, и кто-либо в локальной сети может добавлять песни в плейлист.
Если кто-то добавляет песню в плейлист, он/она не может добавить новый в течение заданного времени (по умолчанию 1 минута).
Есть одно устройство с привилегиями администратора. С этим устройством время ожидания может быть изменено, а удаление песен также возможно с помощью.
Существует функция AutoPlay (приложение использует API YouTube для этого), но иногда я не удовлетворен предоставленной следующей песней. Это должно быть улучшено, поэтому эта функция помечена как бета.
Демонстрация
Видео:
Как запустить это приложение
Я проверил его на Minux Mint 18, но думаю, что он должен работать над каждым распределением Linux. (Docker Attacts/dev/snd объем, и он не доступен в Windows)
Докер-состав
Скачать Docker Compose File и бежать Docker-Compose up -d
Без докера
Docker Container Run -D -P 8080: 8080 DocoProsta/DJ-SOMA-Frontend-Pusher
Docker Container Run -D –Privileged -V/dev/snd:/dev/snd -p 5000: 5000 dj-soma-backend
Ссылка на код
На самом деле это была одна из моих половинных боковых проектов. Я пытался использовать Flask-Socketio Но это немного ненадежно и трудно использовать. Я читал о конкурсе толкателя здесь, и я понял, что это идеально для моего приложения:)
Я многому научился во время процесса разработки I.E.: YouTube API, как использовать толкатель, улучшил мои угловые знания и т. Д.
Я хотел бы разработать дальше приложение, рефакторировать код, добавлять тесты, может быть, добавить новые функции.
Стек, который я использовал:
Backend:
Внешний интерфейс:
Как я использовал толка
Для каждого клиента есть один канал (имя канала – это внутренний IP-адрес клиента) и один широковещательный канал.
Клиентские каналы используются для оставшихся временных уведомлений, канал вещания/администратора для всего остального.
Вещательные каналы сообщения:
- Песня добавлена: когда кто-то добавляет новую песню, Pusher отправляет данные новой песни для каждого клиента.
- Песня удалена: похожая на песню
- Положение времени изменилось (текущее положение песни): это сообщение отправлено 10 раз для каждой песни
- Объем изменен: когда кто-то использует ползунок громкости, другие клиенты получают сообщение из толкателя о новом значении ползунка громкости
- AutoPlay изменилось: если кто-то проверяет/снимает флажок AutoPlay, Pusher отправляет сообщение для клиентов с новым значением (True/false)
Оригинал: “https://dev.to/docoprusta/dj-soma-4mhj”