asvvizit / streamtalk
Laravel package for real-time chat system implementation
0.1.3
2025-06-22 21:23 UTC
Requires
- php: ^7.3 || ^8.0
- pusher/pusher-php-server: ^5.0 || ^6.0 || ^7.0 || ^8.0
Conflicts
- laravel/framework: <8.0 || >=13.0
README
Laravel's #1 one-to-one chatting system package. Adds a complete real-time messaging system to new/existing Laravel applications with minimal setup.
Key Features (Ключевые особенности)
- Real-time messaging with Pusher
- User authentication middleware
- API and Web route separation
- File attachments support
- Dark/light mode
Rus - StreamTalk для сервисов проектов (Laravel пакет)
Laravel's #1 система чатов "один-на-один". Добавляет полноценную систему обмена сообщениями в реальном времени в новые/существующие Laravel приложения с минимальной настройкой.
Key Features (Ключевые особенности)
- Real-time messaging with Pusher
- User authentication middleware
- API and Web route separation
- File attachments support
- Dark/light mode
Installation
composer require asvvizit/streamtalk php artisan StreamTalk:install
Add in file .env
STREAMTALK ROUTE CONFIG
Система распознаёт автоматические пути контроллеров, но вы можете их переопределить пред установкой.
Внесите те ключи которые хотите переопределить или закомментируйте при помощи знака решётки в начале строки
# ============================================================================== # ОСНОВНЫЕ НАСТРОЙКИ STREAMTALK # ============================================================================== # Режим отладки (true/false). По умолчанию: false. STREAMTALK_DEBUG=true # Цветовая тема: "light", "dark" или "auto". По умолчанию: "auto". STREAMTALK_THEME=auto # Название мессенджера. По умолчанию: "StreamTalk Messenger". STREAMTALK_NAME="My Messenger" # Диск для хранения файлов (аватары, вложения). По умолчанию: 'public'. STREAMTALK_STORAGE_DISK=streamtalk # Максимальный размер файла в МБ. По умолчанию: 150. STREAMTALK_MAX_FILE_SIZE=50 # Количество сообщений на странице. По умолчанию: 25. STREAMTALK_MESSAGES_PER_PAGE=30 # Порядок сообщений: "asc" (старые сверху) или "desc" (новые сверху). По умолчанию: "asc". STREAMTALK_MESSAGES_ORDER=asc # ============================================================================== # НАСТРОЙКИ PUSHER (ОБЯЗАТЕЛЬНЫЕ!) # ============================================================================== # Драйвер широковещания. Должен быть 'pusher'. BROADCAST_DRIVER=pusher # ID приложения Pusher (из аккаунта pusher.com) PUSHER_APP_ID=your_app_id # Ключ приложения Pusher PUSHER_APP_KEY=your_app_key # Секрет приложения Pusher PUSHER_APP_SECRET=your_app_secret # Кластер Pusher (например: mt1, eu, us2). По умолчанию: 'mt1'. PUSHER_APP_CLUSTER=mt1 # ============================================================================== # ВЕБ-МАРШРУТЫ # ============================================================================== # Префикс URL для веб-маршрутов. По умолчанию: 'streamtalk'. STREAMTALK_ROUTES_PREFIX=chat # Префикс для имен маршрутов. По умолчанию: 'streamtalk.'. STREAMTALK_ROUTES_AS=chat. # Middleware для веб-маршрутов (через запятую). По умолчанию: 'web,auth'. STREAMTALK_ROUTES_MIDDLEWARE=web,auth,verified # Пространство имен для контроллеров. По умолчанию: 'App\Http\Controllers\StreamTalk'. STREAMTALK_ROUTES_NAMESPACE=App\Http\Controllers\Messenger # ============================================================================== # API-МАРШРУТЫ # ============================================================================== # Префикс URL для API-маршрутов. По умолчанию: 'streamtalk/api'. STREAMTALK_API_ROUTES_PREFIX=chat/api # Префикс для имен API-маршрутов. По умолчанию: 'api.streamtalk.'. STREAMTALK_API_ROUTES_AS=api.chat. # Middleware для API-маршрутов (через запятую). По умолчанию: 'api,auth:sanctum'. STREAMTALK_API_ROUTES_MIDDLEWARE=api,auth:sanctum # Пространство имен для API-контроллеров. По умолчанию: 'App\Http\Controllers\StreamTalk\Api'. STREAMTALK_API_ROUTES_NAMESPACE=App\Http\Controllers\Messenger\Api # ============================================================================== # АВАТАРЫ ПОЛЬЗОВАТЕЛЕЙ # ============================================================================== # Папка для хранения аватаров. По умолчанию: 'users-avatar'. STREAMTALK_AVATAR_FOLDER=avatars # Аватар по умолчанию. По умолчанию: 'avatar.png'. STREAMTALK_DEFAULT_AVATAR=default-avatar.jpg # Включить Gravatar (true/false). По умолчанию: true. STREAMTALK_GRAVATAR_ENABLED=true # Размер изображения Gravatar. По умолчанию: 200. STREAMTALK_GRAVATAR_SIZE=150 # Тип изображения Gravatar. По умолчанию: 'identicon'. STREAMTALK_GRAVATAR_IMAGESET=mm # ============================================================================== # УВЕДОМЛЕНИЯ И ЗВУКИ # ============================================================================== # Включить уведомления (true/false). По умолчанию: true. STREAMTALK_NOTIFICATIONS_ENABLED=true # Каналы уведомлений (через запятую). По умолчанию: 'database,broadcast'. STREAMTALK_NOTIFICATION_CHANNELS=database,broadcast,mail # Включить звуки (true/false). По умолчанию: true. STREAMTALK_SOUNDS_ENABLED=true # Путь к звукам. По умолчанию: 'sounds/StreamTalk'. STREAMTALK_SOUNDS_PATH=sounds/messenger # Звук нового сообщения. По умолчанию: 'new-message-sound.mp3'. STREAMTALK_NEW_MESSAGE_SOUND=notification.mp3 # ============================================================================== # ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ # ============================================================================== # Показывать статус пользователя (true/false). По умолчанию: true. STREAMTALK_SHOW_STATUS=true # Показывать подтверждение прочтения (true/false). По умолчанию: true. STREAMTALK_SHOW_READ_RECEIPTS=true # Формат даты сообщения. По умолчанию: 'F j, Y, g:i a'. STREAMTALK_DATE_FORMAT="d.m.Y H:i" # Включить кеширование (true/false). По умолчанию: true. STREAMTALK_CACHE_ENABLED=true # Продолжительность кеширования в минутах. По умолчанию: 60. STREAMTALK_CACHE_DURATION=30 # Имя очереди для уведомлений. По умолчанию: 'default'. STREAMTALK_QUEUE_NOTIFICATIONS=notifications # Включить модерацию контента (true/false). По умолчанию: false. STREAMTALK_CONTENT_MODERATION=false # ============================================================================== # ИНТЕГРАЦИИ (для разработчиков) # ============================================================================== # Класс для хука перед отправкой сообщения STREAMTALK_HOOK_BEFORE_MESSAGE=App\Hooks\BeforeMessageHook # Класс для хука после отправки сообщения STREAMTALK_HOOK_AFTER_MESSAGE=App\Hooks\AfterMessageHook # Класс для хука при получении сообщения STREAMTALK_HOOK_MESSAGE_RECEIVED=App\Hooks\MessageReceivedHook
Add block in file config/filesystems.php
/* Диск для StreamTalk (обязательно) */ 'streamtalk' => [ 'driver' => 'local', 'root' => storage_path('/streamtalk'), 'url' => env('APP_URL').'/storage/streamtalk', 'visibility' => 'public', 'throw' => false, ],
Add custom block in file config/filesystems.php
/* Пример кастомного диска (опционально) */ 'custom' => [ 'driver' => 'local', 'root' => storage_path('/custom'), 'url' => env('APP_URL').'/storage/custom', 'visibility' => 'public', 'throw' => false, ],