Рубрики
Без рубрики

[Вход] DJ Soma

Приложение / HACK, представленное в первой вечерний конкурс сообщества DEV .. Помечено с PuShercontest, угловой, Python, толкатель.

«Распределенное» музыкальное плеер веб-приложение.

Игрок находится на серверной машине, и кто-либо в локальной сети может добавлять песни в плейлист.

Если кто-то добавляет песню в плейлист, он/она не может добавить новый в течение заданного времени (по умолчанию 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

Ссылка на код

Frontend Отдохнуть

На самом деле это была одна из моих половинных боковых проектов. Я пытался использовать Flask-Socketio Но это немного ненадежно и трудно использовать. Я читал о конкурсе толкателя здесь, и я понял, что это идеально для моего приложения:)

Я многому научился во время процесса разработки I.E.: YouTube API, как использовать толкатель, улучшил мои угловые знания и т. Д.

Я хотел бы разработать дальше приложение, рефакторировать код, добавлять тесты, может быть, добавить новые функции.

Стек, который я использовал:

Backend:

Внешний интерфейс:

Как я использовал толка

Для каждого клиента есть один канал (имя канала – это внутренний IP-адрес клиента) и один широковещательный канал.

Клиентские каналы используются для оставшихся временных уведомлений, канал вещания/администратора для всего остального.

Вещательные каналы сообщения:

  • Песня добавлена: когда кто-то добавляет новую песню, Pusher отправляет данные новой песни для каждого клиента.
  • Песня удалена: похожая на песню
  • Положение времени изменилось (текущее положение песни): это сообщение отправлено 10 раз для каждой песни
  • Объем изменен: когда кто-то использует ползунок громкости, другие клиенты получают сообщение из толкателя о новом значении ползунка громкости
  • AutoPlay изменилось: если кто-то проверяет/снимает флажок AutoPlay, Pusher отправляет сообщение для клиентов с новым значением (True/false)

Оригинал: “https://dev.to/docoprusta/dj-soma-4mhj”