Skip to content

romartyn/chat

Repository files navigation

Dark Chat

Установка

Для работы требуется только установленные PHP (7.3.2) + NODE/NPM (12.16.3/6.14.4).

После клонирования репозитория:

  • Создайте файл .env из .env.example.
  • Измените DB_DATABASE на полный абсолютный путь к пустому файлу для хранения базы данных SQLite.
  • Выполните в консоли из директории проекта пкоманды
    • composer install
    • php artisan migrate
    • php artisan db:seed
    • npm i
    • npm run production
  • Для запуска WEB вервера: php artisan serve
  • В соседнем окне консоли для запуска WS сервера: node resources/js/chat/server.js
  • Далее запустите перейдите в браузере по адресу http://127.0.0.1:8000/ и прробуем общаться

Замечания

Для авторизации используется Laravel, в остальном его роль минимальна.

Анонимный вход поддерживается. Но аноним пока может назодиться только один, так как имеет один и тот же ай ди, не успел проработать этот момент. В файле database/seeders/UserSeeder.php можно найти двоих пользователей.

В качестве фронтенд фреймворка выбран Vue.JS, главным образом для того, чтобы проверить, как он себя поведёт в данном типе задач, плюс проработать компонентный подход. Думаю, без него можно добиться большей отзывчивости интерфейса.

Для записи звука с микрофора, как и предложено, выбран WebAudioRecorder.js, но лишь потому, что используумые кодеки правильно отработали в моём окружении. С точни зрения архитектуры данная бибилитека не оптимальна, так как не лежит в репозитории и требует костылей для простого подключения. Пробовал использовать mic-recorder-to-mp3, которая есть в NPM и имеет более приятный дизайн, но там проблемы с воспроизведением звука в некоторых браузерах.

К сообщению можно прикрепить более одной звукозаписи. Так же, к сообщению можно прикрепить графику, если вставить из буфера обмена в поле текстового ввода.

Прикреплённые файлы отсылаются вместе с текстом одним сообщеним, что требует упаковки в Base64, что неоптимально для производительности на клиенте. Не успел по времени, но могу сделать отправку бинарных данных.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published