Laravel Messenger
Prerequisites
- PHP >= 7.4 | 8.0
- Laravel >= 8.42
- laravel broadcast driver configured, and your own websocket implementation.
SubstituteBindings::class
route model binding enabled in your API / WEB middleware groups.
Features
- Realtime messaging between multiple models, such as a User, Admin, and Teacher model.
- RESTful API, allowing you to make your own UI or connect to a mobile app.
- Support for morph maps on your provider models. See: Morph Maps
- Private and group threads.
- Permissions per participant within a group thread.
- Send image, document or audio messages.
- Message reactions, replies, edits, and deletion.
- Group thread chat-bots. Bot addon
- Friends, Search, and Online status systems.
- Provider, group thread, and bot avatars.
- Underlying calling system you can extend.
- Group thread invitation links (like discord).
- All actions are protected behind policies.
- Scheduled commands for automation cleanup and checks.
- Queued jobs fired from our event subscribers.
- Most features can be toggled at runtime using our
Messenger
facade. - Optional extra payload when sending messages to allow custom json to be stored with the message.
Upcoming for v2
- Temporary Ephemeral conversations.
- Improved API pagination / filters.
- Possible extraction of friends system.
- Better image manipulation / saving of multiple sizes.
- Encryption of messages (E2E is the long term goal).
Notes
- Read through our
messenger.php
config file before migrating! - Calling is disabled by default. You are responsible for implementing your own media server or connecting to a 3rd party service.
Installation
Composer
$ composer require rtippin/messenger
To complete our setup, please refer to the installation docs listed below:
Documentation
-
Install / Registering Providers
-
Configuration
-
Commands
-
Broadcasting
-
Chat Bots
-
Calling
-
Messenger Composer
-
Helpers / Facades
-
API Explorer
Addons / Demo
- Messenger Bots - Bot functionality is built into the core of this
MESSENGER
package, but you are responsible for registering your own bot handlers. - Messenger Faker - An addon package useful in dev environments to mock/seed realtime events and messages.
- Messenger Web UI - Addon package containing ready-made web routes and publishable views / assets, including default images.
- Demo App - You may view our demo laravel 8 source with this package installed, including a Live Demo.
Richard Tippin
Credits -LICENSE | CHANGELOG
Security
If you discover any security related issues, please email author email instead of using the issue tracker.