twopoint0/reverb-chat

Realtime chat package using Laravel Reverb

Maintainers

Package info

github.com/PronayBormon/reverb-chat

pkg:composer/twopoint0/reverb-chat

Statistics

Installs: 5

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-04-10 08:23 UTC

This package is auto-updated.

Last update: 2026-04-10 10:06:05 UTC


README

A modular, real-time chat package for Laravel powered by Laravel Reverb.

Features

  • 💬 Private & Group Chat
  • ⚡ Real-time messaging (WebSocket)
  • 📎 File attachments
  • 🌐 API + Web UI
  • 🧱 Clean and scalable architecture
  • 🔌 Easy integration with any Laravel app

Installation

1. Install via Composer

composer require twopoint0/reverb-chat

2. Publish Config

php artisan vendor:publish --tag=reverb-chat-config

3. Run Migration

php artisan migrate

4. Install Laravel Reverb (Required)

composer require laravel/reverb
php artisan reverb:install

5. Configure .env

BROADCAST_DRIVER=reverb

REVERB_APP_ID=local
REVERB_APP_KEY=your_key
REVERB_APP_SECRET=your_secret
REVERB_HOST=127.0.0.1
REVERB_PORT=8080
REVERB_SCHEME=http

6. Run Services

php artisan reverb:start
php artisan queue:work

⚙️ Configuration

return [
    'user_model' => App\Models\User::class,
    'user_table' => 'users',
    'api_prefix' => 'api/reverb-chat',
];

🌐 Routes

📡 API Routes

Base URL:

http://127.0.0.1:8000/api
Method Endpoint Description
POST /open-group Create or open private chat
POST /{chat}/message Send message using chat ID
POST /user/{user}/message Send message to user
GET /messages/{chat_id} Get chat messages
GET /messages/user/{user_id} Get messages with user
GET /list Get chat list

🌐 Web Routes

Base URL:

http://127.0.0.1:8000
Method Endpoint Description
GET /message Chat home page
POST /chatroom Open chat room
POST /send-message Send message

💬 API Usage

🔹 Open or Create Chat

POST /api/chat/open-group
{
  "user_id": 2
}

🔹 Send Message (Chat ID)

POST /api/chat/{chat_id}/message
{
  "message": "Hello"
}

🔹 Send Message (User)

POST /api/chat/user/{user_id}/message

🔹 Get Messages

GET /api/chat/messages/{chat_id}

🔹 Chat List

GET /api/chat/list

⚡ Realtime Example

window.Echo.channel('chat.1')
    .listen('sendMessage', (e) => {
        console.log(e.message);
    });

🧱 Database Tables

  • chats
  • chat_messages
  • chat_users
  • chat_message_attachments

🛠 Requirements

  • PHP >= 8.2
  • Laravel 11 / 12 / 13
  • Laravel Reverb

🔮 Upcoming Features

  • Typing indicator
  • Seen / delivered system
  • Online users (presence)
  • Notifications
  • Multi-tenant support

🤝 Contributing

Pull requests are welcome. Feel free to improve this package.

📄 License

MIT License